|
Внутренний Watchdog Timer на ATmega32, Непойму, но помоему, "собака" сбрасывает контроллер. |
|
|
|
Jul 25 2007, 07:21
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 20-02-07
Пользователь №: 25 515

|
Приветствую. Подскажите пожалуйста.
Имеем ATmega32. программу в Асемблере, AVR Studio4.
Гоняем программу в симуляторе. Примерно через полсекунды происходит сброс Методом научного тыка определил, что виновна "собака", т.к. если запретить ее работу, то все фунциклирует. С другой стороны, если всю программу упростить, оставив только обработку прерываний от таймера, то разрешенный WDT опять все сбрасывает примерно через полсекунды (странно, ведь WDT настроен на 2,1 сек).. Не могу понять откуда просачивается сброс. - пререывание по таймеру 100 Гц.
timer1: push tmp1 push tmp2 in tmp1,SREG push tmp1
call timer1_set call wdt_set
pop tmp1 out SREG,tmp1 pop tmp2 pop tmp1
reti
- в прерывании вызываю подпрограмму перезагрузки таймера - вызываю подпрограмму сброса WDT и его инициализации ;=================================== timer1_set: ldi tmp1,0b00000100 ;TOIE =1 разрешение прерываний от таймера out TIMSK,tmp1
ldi tmp1,0x00 ;откл. таймера1 от выводов процессора out TCCR1A,tmp1
ldi tmp1,0b00000010 ;предделитель на 8 out TCCR1B,tmp1
ldi tmp1,tmr1h ;зарузка таймера out TCNT1H,tmp1 ldi tmp1,tmr1l out TCNT1L,tmp1 ret ;===================================
wdt_set:
wdr ;сброс внутреннего WDT
ldi tmp1,0b00011111 ;инициализация внутр. WDT, разрешение работы, период 2,1 сек при питании 5 Вольт. out wdtcr,tmp1
ret ;===================================
Подскажите пожалуйста, в чем еще может быть загвоздка?
|
|
|
|
|
 |
Ответов
|
Jul 25 2007, 10:26
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 20-02-07
Пользователь №: 25 515

|
Спасибо всем откликнувшимся.
Но проблема-то не в том где лучше, а где хуже делать сброс WDT, с этим все понятно - сколько людей, столько и мнений.
Проблема в том, что при запуске симулятора происходит сборос, скорее всего, по WDT, после, если быть точным, 2097152 шага программы, что при 4МГц соответствует 0,524288 секунды. А WDT настроен на 2,1 сек. T.е. фактически "собака" не успевает переполниться... Но сброс на лицо. отключаем WDT - сброса нет.
Сдается мне, что симулятор глючит . Попробовал вместо ATmega32 выбрать ATmega323. Вроде все работает. Установил последнюю доступную версию AVR Studio 4.12 SP4 (до этого стояла SP2) там таже самая история.
Возможны глюки в симуляторе? Или все же я дурак? Блин, ну ошибиться-то негде.
|
|
|
|
|
Jul 25 2007, 10:33
|
Местный
  
Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598

|
Цитата(Alex2578 @ Jul 25 2007, 13:26)  Спасибо всем откликнувшимся.
Но проблема-то не в том где лучше, а где хуже делать сброс WDT, с этим все понятно - сколько людей, столько и мнений.
Проблема в том, что при запуске симулятора происходит сборос, скорее всего, по WDT, после, если быть точным, 2097152 шага программы, что при 4МГц соответствует 0,524288 секунды. А WDT настроен на 2,1 сек. T.е. фактически "собака" не успевает переполниться... Но сброс на лицо. отключаем WDT - сброса нет. Сдается мне, что симулятор глючит . Попробовал вместо ATmega32 выбрать ATmega323. Вроде все работает. Установил последнюю доступную версию AVR Studio 4.12 SP4 (до этого стояла SP2) там таже самая история.
Возможны глюки в симуляторе? Или все же я дурак? Блин, ну ошибиться-то негде. А попробуйте поставить не последнюю а раннюю версию AVRStulbo. В моей практике это сильно помогало. А лучше прошить проэкт в кристал, в начале программы дергать ногой и посмотреть - сбрасывается камень или нет.
|
|
|
|
Сообщений в этой теме
Alex2578 Внутренний Watchdog Timer на ATmega32 Jul 25 2007, 07:21 Wild007 Инициализацию "собаки" надо делать один ... Jul 25 2007, 08:32 IEC Подскажите пожалуйста, в чем еще может быть загвоз... Jul 25 2007, 08:36 satellite-plus Цитата(IEC @ Jul 25 2007, 11:36) Подскажи... Jul 25 2007, 09:11  IEC Цитата(satellite-plus @ Jul 25 2007, 12... Jul 25 2007, 09:24   satellite-plus Цитата(IEC @ Jul 25 2007, 12:24) А память... Jul 25 2007, 09:51    IEC Цитата(satellite-plus @ Jul 25 2007, 12... Jul 25 2007, 10:08 Wild007 Цитата(Alex2578 @ Jul 25 2007, 13:26) Сда... Jul 25 2007, 10:48 Alex2578 Полазил по хелпу AVRStudio4 SP4, действительно мно... Jul 25 2007, 13:22 defunct Цитата(Alex2578 @ Jul 25 2007, 16:22) В о... Jul 25 2007, 14:01  Alex2578 Цитата(defunct @ Jul 25 2007, 18:01) Нашл... Jul 26 2007, 05:11   defunct Цитата(Alex2578 @ Jul 26 2007, 08:11) Это... Jul 26 2007, 11:23 Wild007 Я обычно при отладке программы (даже на железе) вс... Jul 25 2007, 13:50
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|