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

 
 
> Не работает Watchdog в AtXmega
Хтось
сообщение Oct 4 2013, 13:29
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 26-05-05
Из: Житомир
Пользователь №: 5 403



Прошу помощи у Клуба!

Кто пользовался watchdog таймером в Xmega контроллерах?
У меня watchdog нагло отказывается работать!
Вот кусок программы:

CODE
void watchdog_init(void)
{unsigned char s,n;
// Сгенерировано через Code Wisard AVR и проверено по атмеловскому даташиту
#pragma optsize-
s = SREG; // Save interrupts enabled/disabled state
#asm("cli") // Disable interrupts
n = WDT_PER_512CLK_gc | WDT_ENABLE_bm | WDT_CEN_bm; // Watchdog Timer: On. Period: 500 ms
CCP = CCP_IOREG_gc;
WDT.CTRL = n;

n = (WDT.WINCTRL & (~WDT_WEN_bm)) | WDT_WCEN_bm; // Watchdog window mode: Off
CCP = CCP_IOREG_gc;
WDT.WINCTRL = n;

SREG = s; // Restore interrupts enabled/disabled state
}

#define SetGreenLed PORTC.OUTCLR = 0x40
#define ClrGreenLed PORTC.OUTSET = 0x40
#define SetRedLed PORTC.OUTCLR = 0x80
#define ClrRedLed PORTC.OUTSET = 0x80

void main(void)
{
watchdog_init();
InitPins(); //Инициализация ножек, куча строк типа "PORTA.DIR = 0b00110110;" и ничего больше
SetGreenLed; //
InitSystemClock(); //переключиться на внешний генератор 33 МГц
delay_ms(400); //
ClrGreenLed; //
delay_ms(5000); //
while(1) //
{delay_ms(250); //
SetRedLed; //
delay_ms(250); //
ClrRedLed; //
} //
//... //Дальше шла программа, которую WDT должен был защищать и оберегать


После рестарта мигает зеленый светодиод, а затем навсегда начинает мигать красный. То есть контроллер не сбрасывается.
Пробовал включить WDT через Fuse биты (устанавливал WDP и WDLOCK) - не помогает, все равно Watchdog не работает.
Пробовал на двух контроллерах AtXmega128A1 AtXmega32A4. не работает ни там ни там.
Как заставить его работать? Может я что-то упускаю? Кто то вообще использовал WDT в Xmega_х?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zombi
сообщение Oct 4 2013, 18:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



WDT никогда не использовал ни в мегах ни в хмегах.
Поэтому врядли чего подскажу.
Но мне просто интересно зачем вам нужен WDT.
Go to the top of the page
 
+Quote Post
Хтось
сообщение Oct 4 2013, 19:21
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 26-05-05
Из: Житомир
Пользователь №: 5 403



Цитата(zombi @ Oct 4 2013, 21:53) *
Но мне просто интересно зачем вам нужен WDT.

Конкретно сейчас есть 3 причины:
1. При подаче питания с помощью искрящего контакта контроллер зависает где -то один раз из двадцати. (это при том, BOD включен на 2,4В при питании 3,3, а нормально работать контроллер начинает с 1,8В)
2. Плата работает в условии достаточно сильных помех от расположенных рядом двигателей + также рядом стоящие радиопередатчики ей здоровья не добавляют twak.gif .
3. Использование WDT дает +2 к такому важному навыку разработчика, как "здоровый сон" sm.gif

Цитата(Xenia @ Oct 4 2013, 22:08) *
Перечитайте мой предыдущий пост...

Да, я читал, как доберусь до железа - обязательно попробую и сообщу о результатах.
Еще раз спасибо за помощь!
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 4 2013, 21:09
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Хтось @ Oct 4 2013, 22:21) *
Конкретно сейчас есть 3 причины:
1. При подаче питания с помощью искрящего контакта контроллер зависает где -то один раз из двадцати. (это при том, BOD включен на 2,4В при питании 3,3, а нормально работать контроллер начинает с 1,8В)
2. Плата работает в условии достаточно сильных помех от расположенных рядом двигателей + также рядом стоящие радиопередатчики ей здоровья не добавляют twak.gif .
3. Использование WDT дает +2 к такому важному навыку разработчика, как "здоровый сон" sm.gif

1.Попробуйте внешний супервизор.
2.Борьба с зависаниями с помощью WDT абсурд.
3.Только с этим и согласен.

Go to the top of the page
 
+Quote Post
Хтось
сообщение Oct 6 2013, 11:38
Сообщение #5





Группа: Участник
Сообщений: 14
Регистрация: 26-05-05
Из: Житомир
Пользователь №: 5 403



bb-offtopic.gif Уважаемый zombi, на этом форуме уже есть не одна тема (и не без Вашего участия) с обсуждением стоит ли использовать WDT, с подобной "помощью" милости прошу туда!

Цитата(zombi @ Oct 5 2013, 00:09) *
1.Попробуйте внешний супервизор.

Использование внешнего супервизора это абсурд, так как есть встроенный (BOD) который ничем не хуже, только дешевле. А от внешних мы отказались уже лет 8 назад, после того, как несколько штук сгорели и стали выдавать непериодический ресет просто так! (уж поверьте, сгорели именно супервизоры, а не питание сделалось плохим.)
Цитата(zombi @ Oct 5 2013, 00:09) *
2.Борьба с зависаниями с помощью WDT абсурд.

Может мы говорим о разных вещах, но в документации от "атмел" написано, что ихний WDT именно для этого и предназначен!
Цитата(zombi @ Oct 5 2013, 00:09) *
3.Только с этим и согласен.

Уже только этого и достаточно.

P.S. Вы все равно не убедите меня, что WDT это зло, поэтому прошу по этому поводу в данной теме больше не писать.
Кстати, некоторые убеждены, что ремень безопасности в машине это тоже зло, но я все равно им пользуюсь sm.gif
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Oct 6 2013, 13:46
Сообщение #6


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Хтось @ Oct 6 2013, 14:38) *
Использование внешнего супервизора это абсурд, так как есть встроенный (BOD) который ничем не хуже, только дешевле.

Таки бывают случаи, когда внешний необходим, но данной темы это не касается.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Хтось   Не работает Watchdog в AtXmega   Oct 4 2013, 13:29
- - Xenia   Что такое у вас "n"? Попробуйте прямо за...   Oct 4 2013, 15:18
- - Хтось   Укладывается, я смотрел сгенерированный asm, там n...   Oct 4 2013, 17:17
|- - Xenia   Цитата(Хтось @ Oct 4 2013, 21:17) А Вы ис...   Oct 4 2013, 18:22
|- - Хтось   Хорошо хоть у кого-то работает, значит проблема ре...   Oct 4 2013, 18:36
|- - Xenia   Цитата(Хтось @ Oct 4 2013, 22:36) а может...   Oct 4 2013, 18:49
|- - Хтось   вот сгенерированный код: CODE;void watchdog_init(v...   Oct 4 2013, 19:01
|- - Xenia   Цитата(Хтось @ Oct 4 2013, 23:01) Если у ...   Oct 4 2013, 19:08
- - zombi   Цитата(Хтось @ Oct 6 2013, 14:38) прошу п...   Oct 6 2013, 14:35
- - Хтось   Все! Я окончательно понял, что контроллеры дел...   Oct 7 2013, 19:29


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

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 14:43
Рейтинг@Mail.ru


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