реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> инициализация AVR, какие действия обязательны?
coolibin
сообщение Jan 31 2008, 07:39
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Какие действия обязательны после сброса ATmega8? например, для всех обязательным является устанавление адреса стека.


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
KRS
сообщение Jan 31 2008, 07:49
Сообщение #2


Профессионал
*****

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



Цитата(coolibin @ Jan 31 2008, 10:39) *
Какие действия обязательны после сброса ATmega8? например, для всех обязательным является устанавление адреса стека.

Вот и не правда! Стек может не использоваться! Если не разрешать прерывания и не пользоваться подпрограммами. У меня есть такой хитрый проект где авр используется просто как автомат по генерации определенного сигнала.
Go to the top of the page
 
+Quote Post
Guest_=VRA=_*
сообщение Jan 31 2008, 07:58
Сообщение #3





Guests






Обязательно инициализировать (=настроить) ВСЮ периферию (порты, таймеры, АЦП, УАРТ и т.п.), которую будешь использовать, и отключить ту, которую не будешь (например, WDT). Обязательно правильно выставить фузы (настроить тактирование, BOD, совместимость и т.д.). А указатель стека нужно инициализировать хотя бы для того, чтобы потом не рвать на лысине волосы в поисках загадочных глюков
Go to the top of the page
 
+Quote Post
KRS
сообщение Jan 31 2008, 08:10
Сообщение #4


Профессионал
*****

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



Цитата(=VRA= @ Jan 31 2008, 10:58) *
и отключить ту, которую не будешь (например, WDT).

Если у вас после reset включен watchdog, отключить его все равно не удастся.

Цитата(=VRA= @ Jan 31 2008, 10:58) *
Обязательно правильно выставить фузы (настроить тактирование, BOD, совместимость и т.д.).

А это делается при прожигании, а не после reset
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение Jan 31 2008, 08:52
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



Иногда бывает полезно неиспользуемые ноги портов привести в строго определенное сосотояние. Например сконфигурировав их на выход и записать туда нули.
Go to the top of the page
 
+Quote Post
KRS
сообщение Jan 31 2008, 08:54
Сообщение #6


Профессионал
*****

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



Цитата(VladimirYU @ Jan 31 2008, 11:52) *
Иногда бывает полезно неиспользуемые ноги портов привести в строго определенное сосотояние. Например сконфигурировав их на выход и записать туда нули.

Это точно! Особенно на испытаниях при понижении температуры при -10 черте что начинается.
Go to the top of the page
 
+Quote Post
arttab
сообщение Feb 1 2008, 02:09
Сообщение #7


Профессионал
*****

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



Цитата(KRS @ Jan 31 2008, 14:10) *
Если у вас после reset включен watchdog, отключить его все равно не удастся.
А это делается при прожигании, а не после reset


с чего это не получиться. процедура отключения написана в доке


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
adc
сообщение Feb 1 2008, 04:53
Сообщение #8


Местный
***

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



Цитата(arttab @ Feb 1 2008, 05:09) *
с чего это не получиться. процедура отключения написана в доке

Ссылочку не дадите где описывается процедура изменения состояния fuse битов программно? biggrin.gif


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
arttab
сообщение Feb 4 2008, 01:56
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 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....
Go to the top of the page
 
+Quote Post
adc
сообщение Feb 4 2008, 05:13
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 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


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
KRS
сообщение Feb 4 2008, 09:01
Сообщение #11


Профессионал
*****

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



Цитата(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
всегда включен - значит всегда включен!
Go to the top of the page
 
+Quote Post
coolibin
сообщение Feb 4 2008, 09:50
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



а мне кто нибудь подскажет где почитать про fuse,lock биты и как с ними работать через avreal32?


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
KRS
сообщение Feb 4 2008, 11:45
Сообщение #13


Профессионал
*****

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



Цитата(coolibin @ Feb 4 2008, 12:50) *
а мне кто нибудь подскажет где почитать про fuse,lock биты

Лучше всего в даташите на конкретную модель.
Раздел Memory Programming как раз и начинается с LOCK и FUSE битов.
Go to the top of the page
 
+Quote Post
coolibin
сообщение Feb 4 2008, 12:30
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



А ещё вопрос можно? а зачем нужен watchdog таймер? а то как то размыто пишут


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение Feb 4 2008, 14:05
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 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 таймер? а то как то размыто пишут

Для реализации сброса контроллера в случае его зависания по какой-либо причине, например, бесконечный цикл. Это один из механизмов самовостановления работоспособности устройства, и поиска фатальных программных ошибок. Если кратко.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th July 2025 - 16:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01495 секунд с 7
ELECTRONIX ©2004-2016