- Какая последняя студия лезет на ХР, нужна под ХМЕГУ128? И где её взять? Звиняйте если боян, но лень искать. - rual(19.12.2017 09:13, AVR, полностью)
- ATTINY212, ATTINY214 появились в каталоге DigiKey. Самих MCU на складе пока нет. Цены радуют! 51 от Nuvoton в тоске :) Для примера рядом приведены 8кб версии. Evgeny_CD(536 знак., 14.12.2017 00:12 - 00:24, AVR, полностью)
- Читаю: шаг постройки частоты встроенного генератора (Calibration step size) ±1,5% - многовато будет! ИОН ±3% typ. (не гарантировано) - AU08(14.12.2017 11:34 - 11:39)
- ATSAMD09C13A-SSUT 100- $0.468 Cortex®-M0+ 48MHz 8KBFLASH 4K SRAM 14-SOIC -> DMA, ADC 350ksps, но питание 2.4V – 3.63V - Evgeny_CD(14.12.2017 01:40, ссылка)
- В целом, маркетологи позаботились об этом чипе. DMA, DTC там нет :(. SPI master до 10 Мбит/сек, но таскать данные процом в фоне не получится. На такой скорости только монопольная работа с SPI контроллером. Говнюки!!!!! - Evgeny_CD(14.12.2017 01:19)
- ATtiny416, ATTINY816, ATTINY1616, ATTINY1617 - есть и цены, и чипы. Все очень достойно! Evgeny_CD(415 знак., 14.12.2017 00:51 - 00:56)
- Под крылом Микрочипа Тиньки стали как Меги, а Меги как Х-Меги :). Казалось бы, несомненный прогресс, но тот же самый эффект можно получить перемаркировкой. :) - Ксения(14.12.2017 00:33)
- DAC имеется, однако. - Гyдвин(14.12.2017 00:25)
- Что такое ATmega3208, ATmega3209, ATmega4808, ATmega4809? Неужели Microchip выпустил новые AVR-ки? Google пока не находит, а у IAR только что появилось в списке поддерживаемых компилятором девайсов. => - Ксения(26.10.2017 01:05, AVR, ссылка, полностью)
- mega2561, зашивается долговато. А не встречал ли кто программатора (может бутлоадера), который мог-бы шить начиная только с того адреса, где начались изменения хекса? Могло бы сильно времени сэкономить. - maleon(04.12.2017 17:11, AVR, полностью)
- STK500 не отказывается писать Fuse, если символ не от 0...9 до A...F; В результате заблокировал ATTINY44. Русская "С" и английская "C" выглядят одинаково. AU08(151 знак., 24.11.2017 22:33 - 22:52, AVR, полностью)
- А у какой ATtiny активной есть высокоскоростной ШИМ как раньше в ATtiny15 был? - Yft(20.11.2017 19:19, AVR, полностью)
- Atmel в примерах программ для Xmega заложил интересные грабли: функции, работающие с контроллером NVM (например, вычитывающие калибровочные константы) не возвращают регистр NVM.CMD в исходное состояние (0x00). При этом перестает корректно работать AlexG(253 знак., 15.11.2017 06:57 - 07:00, AVR, полностью)
- И снова AVR и EEPROM. Устройство с питанием от АКБ, AVR питается через понижающий DC-DC напряжением 5Вольт. Кварц 16МГц. BOD установлен на 4.5Вольта, задержка старта максимальная, 65мс. С хорошей батареей все нормально. При подключении убитой Yurasvs(568 знак., 06.11.2017 00:24, AVR, полностью)Kceния
- Чота тоже испужался барьерности АРМов при буферах. И нарыл, что не только способные на ре-ордеринг АРМы, но и банальные АВРы могут при многозадачности поднаср@ть в карман зазевавшемуся: Petrovich(430 знак., 08.11.2017 10:30, , AVR, полностью)MBedder
- 1) volatile int head, tail. 2) вставить asm volatile("": : :"memory") после каждого ++ (или после обоих). - fk0(09.11.2017 00:06)
- Торможу. Собственно операция ++ нифига не атомарная же. Чтение-модификация-запись. И прерваться может на каждом тире. Если gcc то использовать __sync_add_and_fetch(), иначе х.з. что делать. Для обработчиков прерываний, понятно, мьютексы fk0(61 знак., 09.11.2017 00:47)
- Со времен 8080 "атомарность" операции чтение-модификация-запись достигалось запретом и разрешением прерываний. Что-то изменилось? - VLLV(09.11.2017 11:35)
- Запрет прерываний не всегда возможен. - fk0(09.11.2017 23:40)
- Здесь ошибка не от атомарности RMW. Здесь ошибка атомарности наблюдения за инкрементами обоих переменных. Если Задача2 получила управление после tail++, когда обе переменные равны, и успев загрузить head, потеряла управление, и в следующий раз, Petrovich(80 знак., 09.11.2017 12:40, )
- Петрович набросил и устранился. Атомарность нужна редко. Чаще всего можно выкрутиться при помощи volatile. - SciFi(09.11.2017 12:09)
- На 8-битном процессоре чтение и запись не атомарные -- не выкрутишься. Старший байт записал например, обновленный, а младший не успел. А другой поток читать начал. И ошибка. - fk0(09.11.2017 23:41)
- В таких случаях можно читать несколько раз, пока не прочитаешь то, что нужно. - SciFi(10.11.2017 07:31)
- Не всегда в общем случае. Как понять критерий нужности? - fk0(10.11.2017 11:31)
- часто при чтении пару раз подряд совпасть должно - Vit(10.11.2017 11:40)
- Если читаешь достаточно быстрый аппаратный таймер -- он никогда не совпадет. Младшая половина всегда убегает вперед, а старшая за несколько чтений не успевает измениться. См. мой ответ ниже. - fk0(10.11.2017 11:46)
- Таймера считываются проще Petrovich(145 знак., 10.11.2017 12:57, )
- У тебя три загрузки таймера в цикле, а у меня два. И положение байт в структуре -- не гарантировано. - fk0(10.11.2017 13:04)
- Схематично - это вот так: 1) Берём МК с таймером 2) ... 3) Профит! - SciFi(10.11.2017 13:04)
- Таймера у читающих даташиты считываются еще проще - при корректном чтении первой половины таймера (в ДШ написано, какую именно половину следует читать первой) содержимое второй половины аппаратно защелкивается в теневой регистр, из которого MBedder(38 знак., 10.11.2017 13:02)
- Увы, это не всегда помогает. У pic18 есть теневой регистр, но... для нормальной работы пришлось городить такую конструкцию: аппаратный таймер 16 бит, или даже 12, тут не помню, по прерыванию инкрементится ещё слово (16 бит) программной части fk0(1081 знак., 10.11.2017 13:12)
- 8051 просит разъяснить поподробнее о теневом регистре :) - Petrovich(10.11.2017 13:06, )
- Тяжёлое детство, деревянные игрушки, отсутствие теневого регистра. У меня, кстати, на столе лежит штука, в которой интересный регистр разбит на половинки, и именно вот эта петрушка. Выкинуть на помойку не предлагать. - SciFi(10.11.2017 13:06)
- Нафиг общий случай? Пару раз такое нужно было, всё было просто. Чтение переменной, которая меняется достаточно редко: SciFi(190 знак., 10.11.2017 11:36)
- Да я думал неинтересно народу... Надеюсь, вы поняли откуда появляется ошибка. Это, оказывается, всего лишь ошибка наблюдателя. Выход - проверять в обратной поледовательности чем инкремент, т.е. if(tail>head) {out ERROR;} и будет хорошо. Petrovich(866 знак., 09.11.2017 12:33, )
- Только как понять, выкрутился или нет? - VLLV(09.11.2017 12:18)
- Появились 1. Новые методы запрета прерываний "на время" 2. Атомарные операции инкремента/декремента/и других модификаций ячейки памяти. - AlexBi(09.11.2017 11:51)
- В условиях ни чего не сказано про приоритеты, кто кого может прервать. Если считать что задачи 1 и 2 с одинаковыми приоритетами и прерывать друг друга не могут, тогда проблемы нет совсем. - AlexBi(09.11.2017 11:11)
- что значит "прерваться может на каждом тире" ??? где сохраняется состояние? ну, как узнать на какое тире возвращаться??? - Mahagam(09.11.2017 02:11)
- Продолжайте наблюдение. Сообщите, когда увидите микроконтроллер, который по результату сравнения регистра с текущим значением АЦП аппаратно сможет сбросить ШИМ. Некоторые пики подошли к этому совсем близко, но остановились на прерывании. - Экспериментатор(27.10.2017 00:45, , AVR, полностью)Kceния
- Сие пока тайна, покрытая мраком... Вот ATmega16804 доводилось пользовать - в корпусе SIP4 ;) - Гyдвин(26.10.2017 09:40, AVR, полностью)Kceния
- Стоит ли заморачиваться с кодом Грея для сохранения в EEPROM mAVR некого счетчика как дополнительной меры повышения надежности? Другими словами, является ли часто изменяемый младший бит слабым звеном в ERASE-WRITE памяти - g6sgf(03.10.2017 11:54, , AVR, полностью)
- запись длится 5мс, в сутки 17М записей. Может, проверить раз и закрыть вопрос? VLLV(37 знак., 07.10.2017 16:21)
- почему бы просто не использовать EERAM? Constantin24(69 знак., 06.10.2017 07:49)
- Если объем EEPROM для этого достаточен, то размазывание перезаписей по множеству ячеек хорошо работает и без кода Грея. AlexG(174 знак., 04.10.2017 07:18)
- СтОит, если каждый бит этого счетчика хранится в отдельном байте EEPROM. :) - Хаос(03.10.2017 16:59, )
- А почему не хотите использовать микроконтроллер с отдельным входом для резервной батарейки RAM? - Экспериментатор(03.10.2017 16:01, )
- в коде Грея младший бит будет меняться в 2 раза реже чем в обычном бинарном, это не так много, я думаю что это не поможет. Nikolay801_(410 знак., 03.10.2017 14:37)
- Для повышения надежности записи в ЕЕПРОМ применяю дублирование, размазывание по площадям и контроль целостности. - ASDFS(03.10.2017 13:03)
- По-моему наоборот, старший бит является слабым звеном. В старший бит вы скорее всего всегда будете писать 0, а в младший только в 50% случаев. - Ale3000(03.10.2017 12:15)
- UPD. Просьба к тем, у кого в руках исходники иаровских библиотек: выложите функцию __x_ML_SRAM_EEPROM_24_16. йцукен(311 знак., 01.10.2017 16:48 - 02.10.2017 11:25, AVR, полностью)
- В ЙАР AVR возможно пользоваться вычислениями с плавающей точкой двойной точности (double float) ? - AU08(29.09.2017 01:29, AVR, полностью)
- AVR и три сосны... symbions(1593 знак., 27.09.2017 10:26, AVR, полностью)MBedder