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

 
 
> как изменить обработку bad interrupt в winavr?
viakon
сообщение Feb 9 2010, 04:30
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002



Хочу чтоб происходил не переход на 0, а сброс по вачдогу.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
ARV
сообщение Feb 9 2010, 05:50
Сообщение #2


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

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Код
ISR(BADISR_vect, ISR_NAKED){
   // то, что надо вам сделать
   while(1); // судя по всему именно это
}


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
kiv121
сообщение Feb 9 2010, 07:56
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 12-11-09
Пользователь №: 53 586



Так и не добился перезагрузки собакой у 1281
Мож кто пробовал? Уходит в некуда и все тут.
Iar 5.3
Тупо jmp, вроде не правильно.
Про глюканые партии мсх .?
Поставил внешнее 1705
Go to the top of the page
 
+Quote Post
smk
сообщение Feb 9 2010, 09:33
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



В примерах от Атмела сначала запускался вочдог, а потом бесконечный цикл так чтоб вочдог не сбрасывался.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 9 2010, 09:50
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(kiv121 @ Feb 9 2010, 09:56) *
Iar 5.3
В этой ветке обсуждался другой компилятор. Не видя вашего кода можно сказать только "где-то у вас ошибка". Скорее всего - в запуске собаки. Показывайте код.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
kiv121
сообщение Feb 9 2010, 16:22
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 12-11-09
Пользователь №: 53 586



Сергей, с УВАЖЕНИЕМ к Вам отношусь.
Нет времени на всё. Гоню процесс.
Да сесть бы и разобраться...
Такое ощущение - партия брака (поставщики сказали)
Закупил много.
Развели на внешнюю собаку.
Вся писанина - мож кто как решил.
А нет - сдуем к чертовой матери!
А вся бадяга - RAM.
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 9 2010, 23:03
Сообщение #7


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(kiv121 @ Feb 9 2010, 18:22) *
Вся писанина - мож кто как решил.

Ну например так...
Код
#define wdr()  asm("wdr")
#define cli()  asm("cli")

инициализация
static inline void __hal_WDTInit(void)
{
    U8 iStatus = SREG;
    cli();
    wdr();
    // Start timed sequence
    WDTCSR |= (1 << WDCE);
    // Set new prescaler to 128K cycles (timeout ~1s), and enable system reset by WDT
    WDTCSR = (1 << WDE) | (1 << WDP2) | (1 << WDP1) | (0 << WDP0);
    SREG = iStatus;
}

сброс
void reboot(void)
{
   cli();
   for(;;);
}
Go to the top of the page
 
+Quote Post
viakon
сообщение Feb 11 2010, 11:21
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002



Цитата(ARV @ Feb 9 2010, 11:50) *
Код
ISR(BADISR_vect, ISR_NAKED){
   // то, что надо вам сделать
   while(1); // судя по всему именно это
}


именно то что надо, спасибо
Go to the top of the page
 
+Quote Post

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

 


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


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