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

 
 
> Внутренний Watchdog Timer на ATmega32, Непойму, но помоему, "собака" сбрасывает контроллер.
Alex2578
сообщение Jul 25 2007, 07:21
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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
;===================================

Подскажите пожалуйста, в чем еще может быть загвоздка?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alex2578
сообщение Jul 25 2007, 10:26
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 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) там таже самая история.

Возможны глюки в симуляторе? Или все же я дурак? Блин, ну ошибиться-то негде.
Go to the top of the page
 
+Quote Post
IEC
сообщение Jul 25 2007, 10:33
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 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. В моей практике это сильно помогало.
А лучше прошить проэкт в кристал, в начале программы дергать ногой и посмотреть - сбрасывается камень или нет.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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