|
инициализация AVR, какие действия обязательны? |
|
|
Guest_=VRA=_*
|
Jan 31 2008, 07:58
|
Guests

|
Обязательно инициализировать (=настроить) ВСЮ периферию (порты, таймеры, АЦП, УАРТ и т.п.), которую будешь использовать, и отключить ту, которую не будешь (например, WDT). Обязательно правильно выставить фузы (настроить тактирование, BOD, совместимость и т.д.). А указатель стека нужно инициализировать хотя бы для того, чтобы потом не рвать на лысине волосы в поисках загадочных глюков
|
|
|
|
|
Jan 31 2008, 08:10
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(=VRA= @ Jan 31 2008, 10:58)  и отключить ту, которую не будешь (например, WDT). Если у вас после reset включен watchdog, отключить его все равно не удастся. Цитата(=VRA= @ Jan 31 2008, 10:58)  Обязательно правильно выставить фузы (настроить тактирование, BOD, совместимость и т.д.). А это делается при прожигании, а не после reset
|
|
|
|
|
Feb 4 2008, 01:56
|

Профессионал
    
Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371

|
Цитата Ссылочку не дадите где описывается процедура изменения состояния fuse битов программно? в разделе самомрограммирование указано какие биты и как менять. У Вас вопрос был по watchdog. вот пример из доки: void WDT_off(void) { /* reset WDT */ _WDR(); /* Write logical one to WDCE and WDE */ WDTCR |= (1<<WDCE) | (1<<WDE); /* Turn off WDT */ WDTCR = 0x00; } раздел называется Timed Sequences for Changing the Configuration of the Watchdog Timer.
--------------------
OrCAD, Altium,IAR, AVR....
|
|
|
|
|
Feb 4 2008, 05:13
|

Местный
  
Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836

|
Цитата(arttab @ Feb 4 2008, 04:56)  в разделе самомрограммирование указано какие биты и как менять. У Вас вопрос был по watchdog. вот пример из доки: void WDT_off(void) { /* reset WDT */ _WDR(); /* Write logical one to WDCE and WDE */ WDTCR |= (1<<WDCE) | (1<<WDE); /* Turn off WDT */ WDTCR = 0x00; } раздел называется Timed Sequences for Changing the Configuration of the Watchdog Timer. Это обычная процедура отключение вачдок таймера не изменяющая fuse бит wdton! Почитайте апнот:avr109
--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
|
|
|
|
|
Feb 4 2008, 14:05
|
Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782

|
Цитата(coolibin @ Feb 4 2008, 12:50)  а мне кто нибудь подскажет где почитать про fuse,lock биты и как с ними работать через avreal32? Про биты в даташитс на соответствующий контроллер, про avreal32 на сайте автора. http://www.ln.ua/~real/avreal/index.htmlЦитата(coolibin @ Feb 4 2008, 15:30)  А ещё вопрос можно? а зачем нужен watchdog таймер? а то как то размыто пишут Для реализации сброса контроллера в случае его зависания по какой-либо причине, например, бесконечный цикл. Это один из механизмов самовостановления работоспособности устройства, и поиска фатальных программных ошибок. Если кратко.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|