Makefile в наличии, так что чего-то вроде WinAVR, в котором есть и сам gcc, и make, должно быть достаточно.
Ассемблер (ASM) для AVR в вопросах и ответах
Ассемблер из комплекта avr-gcc.
Makefile в наличии, так что чего-то вроде WinAVR, в котором есть и сам gcc, и make, должно быть достаточно.
Makefile в наличии, так что чего-то вроде WinAVR, в котором есть и сам gcc, и make, должно быть достаточно.
- Реклама
Спасибо.
У меня еще один вопросик.
В main.S есть следующие фюзы для Attiny13A:
Я использую HVS(вот reset фюзы по умолчанию):
Мне кажется, или в main.S big-endian формат фюзов или наоборот в HVS он big-endian?
У меня еще один вопросик.
В main.S есть следующие фюзы для Attiny13A:
Код: Выделить всё
;----------------------------------------------;
; Fuse values
;----------------------------------------------;
.section .fuse,"a",@progbits
.dc.b 0b01111010 ; Fuse low bits
.dc.b 0b11111000 ; Fuse high bitsКод: Выделить всё
g:\_flashlight\ATtiny\HVS\LPT\avrxtool32\bin>avrpp.exe -RF
Put a device on the socket and type Enter...
PAR->Unknown device (FF-FF-FF).
HVS->Detected device is ATtiny13.
Low: 01101010
││││││└┴── CKSEL[1:0] Clock
││││└┴── SUT[1:0] Startup time
│││└── CKDIV8 Clock division ratio (1:1/1, 0:1/8)
││└── WDTON (1:WDT normal, 0:WDT always on)
│└── EESAVE (Retain EEPROM at chip erase 1:No, 0:Yes)
└── SPIEN (1:Disable ISP, 0:Enable ISP) *Available only HVS mode
High:---11111
││││└── RSTDISBL (RESET pin 1:Enable, 0:Disable(PB5))
││└┴── BODLEVEL[1:0] (BOD 11:None, 10:1.8V, 01:2.7V, 00:4.3V)
│└── DWEN (On-Chip Debugging via RESET pin 1:Disable, 0:Enable)
└── SPMEN (SPM instruction 1:Disable, 0:Enable)
Cal: 98
g:\_flashlight\ATtiny\HVS\LPT\avrxtool32\bin>
Достаточно посмотреть на расположение RSTDISBL согласно даташита.
Docendo discimus
- Сообщения: 89
- Зарегистрирован: Вт мар 31, 2015 01:12:46
- Сообщения: 107
- Зарегистрирован: Ср авг 05, 2015 19:34:20
Уважаемый akl.
Стал проверять работу brtc в протеус. Один момент: для того, чтобы выйти из цикла brtc приходится отправлять команду два раза. Причем останов происходит на команде brtc.
Отправляю сообщение - перехожу в паузу - программа на brtc и флаг T установлен. Продолжение Run не изменяет ситуацию.
Повторное отправление сообщения и происходит выход из цикла с отработкой последующих команд и сбросом флага T.
Относительно вашего решения:
https://radiokot.ru/forum/viewtopic.php ... start=6420
Пт янв 26, 2018 14:25:41
Это баг Протеус или какая-то особенность? И как с ней бороться?
Спасибо!
Стал проверять работу brtc в протеус. Один момент: для того, чтобы выйти из цикла brtc приходится отправлять команду два раза. Причем останов происходит на команде brtc.
Отправляю сообщение - перехожу в паузу - программа на brtc и флаг T установлен. Продолжение Run не изменяет ситуацию.
Повторное отправление сообщения и происходит выход из цикла с отработкой последующих команд и сбросом флага T.
Относительно вашего решения:
https://radiokot.ru/forum/viewtopic.php ... start=6420
Пт янв 26, 2018 14:25:41
Это баг Протеус или какая-то особенность? И как с ней бороться?
Спасибо!
- Вложения
-
- brtc.png
- (42.67 КБ) 272 скачивания
- Реклама
- Сообщения: 1495
- Зарегистрирован: Ср июн 25, 2008 15:19:44
Симулируется спящий режим. Поэтому все верно. При включенном спящем режиме выполнение программы прекращается сразу после команды sleep. И разбудить МК можно только действиями зависящими от настройки спящего режима.
- Сообщения: 107
- Зарегистрирован: Ср авг 05, 2015 19:34:20
Demiurg, спасибо огромное за ответ. Буду пробовать при подключенном сотике (ME) в связке с Протеус. Или так тоже не получится и надо ME+железо?
- Сообщения: 1495
- Зарегистрирован: Ср июн 25, 2008 15:19:44
Выбросьте протеус и симулируйте программу в avr-studio 4.19. Это самая стабильная версия.
- Сообщения: 124
- Зарегистрирован: Пн мар 22, 2010 18:07:52
Подскажите, при выделение ячейки ОЗУ МК, она чистая? Можно с нее считать ноль? Спасибо.
Ноль (как и любое другое значение) в ячейке ОЗУ будет только в одном случае - если его туда записать. Что имеется ввиду под выделением ячейки? Директива типа .byte?
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
- Сообщения: 1495
- Зарегистрирован: Ср июн 25, 2008 15:19:44
При написании программ на ассемблере в самом начале любой программы по необходимости вставляете функции и макросы очистки ОЗУ и регистров. Дело в том, что при включении в ОЗУ и регистрах может быть любое значение из за остаточных зарядов. Периферийные регистры при включении питания и сбросе устанавливаются в дефолтные значения. Уточняется в даташитах.
[uquote="Demiurg",url="/forum/viewtopic.php?p=3422512#p3422512"]при включении в ОЗУ и регистрах может быть любое значение из за остаточных зарядов.[/uquote]
...а при сбросе, например во вачдогу или по внешнему ресету так и вовсе там сохранится то, что было до сброса, так что инициализировать переменные нужно всегда.
...а при сбросе, например во вачдогу или по внешнему ресету так и вовсе там сохранится то, что было до сброса, так что инициализировать переменные нужно всегда.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
При аварийном перезапуске "неопределенность" может иметь место не только в ОЗУ, регистровом файле но и в регистрах спецфункций.
Ибо исходное состояние там только при аппаратном сбросе при подаче питания - во всех остальных случаях минимум предшествующее перезапуску состояние.

Ибо исходное состояние там только при аппаратном сбросе при подаче питания - во всех остальных случаях минимум предшествующее перезапуску состояние.
- Сообщения: 1495
- Зарегистрирован: Ср июн 25, 2008 15:19:44
[uquote="BOB51",url="/forum/viewtopic.php?p=3422547#p3422547"]При аварийном перезапуске "неопределенность" может иметь место не только в ОЗУ, регистровом файле но и в регистрах спецфункций.
Ибо исходное состояние там только при аппаратном сбросе при подаче питания - во всех остальных случаях минимум предшествующее перезапуску состояние.
[/uquote]
Уточняется в даташитах. Есть специальные таблицы.
Ибо исходное состояние там только при аппаратном сбросе при подаче питания - во всех остальных случаях минимум предшествующее перезапуску состояние.
Уточняется в даташитах. Есть специальные таблицы.
Я ж про соответствие даташиту только В ЛУЧШЕМ СЛУЧАЕ из ВОЗМОЖНЫХ говорю.
Достаточно часто бывает и хуже.

Не повреждается только информация в ПЗУ и то "все относительно".
Да еще непосредственно в регистре сразу после чтения команды/данных.
Все что хранится в регистрах группы оперативной памяти может заполучить "мусор".
Про ЕЕПРОМ разговор особый - при хранении/считывании данные повредить затруднительно,
однако сам процесс считывания достаточно многоступенчат - посему окончательный результат
чтения может иметь искажения.
При наличии мощных искровых и прочих помех вышеуказанное следует особо учитывать.

Достаточно часто бывает и хуже.
Не повреждается только информация в ПЗУ и то "все относительно".
Да еще непосредственно в регистре сразу после чтения команды/данных.
Все что хранится в регистрах группы оперативной памяти может заполучить "мусор".
Про ЕЕПРОМ разговор особый - при хранении/считывании данные повредить затруднительно,
однако сам процесс считывания достаточно многоступенчат - посему окончательный результат
чтения может иметь искажения.
При наличии мощных искровых и прочих помех вышеуказанное следует особо учитывать.
- Сообщения: 124
- Зарегистрирован: Пн мар 22, 2010 18:07:52
Т.е. кн. включения питания нежелательно использовать, как переключатель режимов. А если хочу, то на МК надо отдельно вешать питание, так?
Или написать скрипт инициализации, так, чтоб при каждом включение проверял целостность данных, так?
Или написать скрипт инициализации, так, чтоб при каждом включение проверял целостность данных, так?
вопрос, конечно, интересный. существуют китайские фонарики на attiny13, в которых единственная кнопка питания служит и для переключения режимов его работы. но для большинства других устройств это будет достаточно неудобный вариант, а может, и недопустимый.vit007 писал(а):Т.е. кн. включения питания нежелательно использовать, как переключатель режимов. А если хочу, то на МК надо отдельно вешать питание, так?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Собственно ежли кнопка выводит систему из сна, а затем перестраивается на обработку сигнала ввода то можно.
Примерно как в этом тесте
https://radiokot.ru/forum/viewtopic.php ... 8#p3419178
если помимо вывода из режима сна ту кнопу задействовать в программе как сигнальную для смены режимов.
Исходно там кнопа только из гиперсна выводит и в самом теле теста не используется.
А как развитие проекта намечался ключик-отсекатель питания светодиодов и, возможно, внутри цикла свечения кнопа как фактор смены чегось в режиме индикации.

Примерно как в этом тесте
https://radiokot.ru/forum/viewtopic.php ... 8#p3419178
если помимо вывода из режима сна ту кнопу задействовать в программе как сигнальную для смены режимов.
Исходно там кнопа только из гиперсна выводит и в самом теле теста не используется.
А как развитие проекта намечался ключик-отсекатель питания светодиодов и, возможно, внутри цикла свечения кнопа как фактор смены чегось в режиме индикации.
я говорил о фонарике с кнопкой, которая отрубает от батарейки всю остальную схему вместе с МК и прочим.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Так чтоб и питание рвать и режимы менять да еще и дешево...
Только если та кнопа "вторичная" - управляет силовым ключом с самоподхватом от МК и дальнейшим отслеживанием уровня на коллекторе упавляемого от МК транзистора.
Но там разница между механическим КЗ и открытым переходом настолько мизерная - логическими уровнями вряд-ли можно оперировать...
Разве что компаратор и/или АЦП?...

Только если та кнопа "вторичная" - управляет силовым ключом с самоподхватом от МК и дальнейшим отслеживанием уровня на коллекторе упавляемого от МК транзистора.
Но там разница между механическим КЗ и открытым переходом настолько мизерная - логическими уровнями вряд-ли можно оперировать...
Разве что компаратор и/или АЦП?...


