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

 
 
 
Reply to this topicStart new topic
> Как запустить WDT в тиньке2314 в interrupt mode?
Alex_Pol
сообщение May 11 2006, 10:04
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



Помогите разобраться, пжлст.
Решил использовать WDT как источник прерывания. Написал вот так:
Код
.INCLUDE    "tn2313def.inc"
.CSEG

.ORG    0
    rjmp    Reset
.ORG    WDTaddr
    rjmp    Led
Reset:    
    ldi    r30,low(RAMEND)
       out    SPL,r30
    ldi    r30,$03    ; настройка направления работы линий порта B
    out    DDRB,r30; 1 и 2-й биты выходы, остальные - входа.
;wdr
    ldi    r30,$56        
;out    WDTCR,r30
    sei        ; разрешаем прерывания
Loop:
    rjmp    Loop        
Led:
    ldi    r30,$02
    eor    r29,r30
    out    PORTB,r29
    reti
.EXIT

Должно было мигать светодиодом каждую секунду.
Не получилось. Что я сделал не так?
Go to the top of the page
 
+Quote Post
_artem_
сообщение May 11 2006, 10:56
Сообщение #2


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



poprobuy vmesto
" ldi r30,$56
;out WDTCR,r30"

zapisat :

cli
wdr
ldi r30,$18 ;WDTCR = (1 <<WDCE) | (1 << WDE)
out wdtcr,r30
ldi r30,$46 ;WDTCR = (1<<WDIE)|(1<<WDP2)|(1<<WDP1);


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение May 11 2006, 11:29
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



А фуз WDTON надо сбрасывать в 0? По дефаулту он стоит в единице. В режиме сброса собачка исправно ресетит раз в секунду.
Go to the top of the page
 
+Quote Post
_artem_
сообщение May 11 2006, 11:45
Сообщение #4


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



имхо wdton = 0 то получим прерывание RESET в любом случае, а нам вроде бы родное собачье нужно . страница 45 дата шит.


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение May 11 2006, 11:55
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



Дык вот, в DS, правда на 41-й стр. в табл. 19 сказано: если wdton - 1 то System reset mode независимо от значений WDE и WDIE. Или я чего не понял?
Go to the top of the page
 
+Quote Post
_artem_
сообщение May 11 2006, 12:27
Сообщение #6


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



Эт потому что я говорю в соответствии с тем что 1 - unprogrammed а 0 - programmed (см нот 1 сразу после таблицы), a вы наоборот в соответствии с булевой логикой события. Может в суд подать на атмел ?


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение May 11 2006, 12:49
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



Мануал Атмел написал отменно хреновый. Ща перепишу WDTON, о результатах отчитаюсь. smile.gif
Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение May 12 2006, 06:08
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



Значит так. Если WDTON сбросить в 0 (запрограммировать), собака принудительно встаёт в ресетмоду.
Так что в ДШ у Атмела лажа. А со своей проблемой разобрался. Вложенные прерывания, блин. Читал мануал, не понял - здесь понятие о приоретете есть?
Go to the top of the page
 
+Quote Post

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

 


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


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