Микроконтроллеры | Таймеры в AVR |
|
---|---|---|
Врпрос у меня такой - при каких условиях и режимах работы таймеров в ATMEGA 64-128 выставляются в регистре TIFR биты признака переполнения таймера. Возможно ли это, если прерывание по переполнению таймера запрещено ? Второй вопрос - в регистре SFIOR самый старший бит при установке в "1" останавливаяе таймеры или все-же он как-то по другому работает ? Просто у младших 8 и 16 мег назначение битов другое. |
|
|
1. Возможно |
|
|
С первым разобрался - не совсем корректно работал с TCNT1H, а вот со вторым пока несяно - как все-же работает старший бит SFIOR в ATMEGA128 ? |
|
|
Работает очень просто, пока TSM стоит в 1, соответствующие прескалеры обнулены (там где PSR0 и/или PSR321 в 1) и не выдают импульсы на свои выходы. Как только TSM =0, прескалеры начинают синхронно работать. |
|
|
А если PSRы стоят в "0" то действия никакого ? ЗЫЖ №2 - можно-ли как-то из программы определить - в каком режиме сконфигурирован контролер 128ом или режиме совместимости с ATMEGA103 ? |
|
|
Никакого. Надо фьюзы читать. Некоторые из них можно читать из программы, некоторые нельзя, надо смотреть по месту. Но зачем? Прочитать их драконом или джейтагом, да и всё. |
|
|
Следующий вопрос : Какие регистры портятся при сбросе по сторожевому таймеру. Понял, что ОЗУ не портиться, поэтому определив причину сброса восстанавливаю состояние из ОЗУ, а оно виснет. Почему не знаю - JTAG не присоединить. |
|
|
При любом сбросе все регистры устанавливаются в исходное состояние. During Reset, all I/O registers are set to their initial values, and the program starts execution Исходное состояние указано в описании регистров. |
|
|
Я думал что при сбросе по WDT ничего не изменяется , только выполняется немаскируемое прерывание на нулевой адрес. Пришлось копии всего хранить в ОЗУ и переписывать оттуда. |
|
|
Wladimir_TS: Я думал что при сбросе по WDT ничего не изменяется |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |