Помогите разобратся. Как описать вектор прерывания в ICC AVR ????
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено mapic 20 октября 2004 г. 17:43

Прописываю вектор следующим образом.

#pragma interrupt_handler timer_0:6

void timer_0(void) /*Прерывание по переполнению таймера/счетчика, необходимое для выхода из режима пониженого энергопотребления*/
{

timer_1++; // Увеличиваем значение таймера
timer_2++; // Увеличиваем значение таймера
timer_end++; // Увеличиваем значение таймера
finish_timer_L++; // Увеличиваем значение таймера авто-выключения
if(finish_timer_L==0) //Если время выключения гирлянды, то
{
finish_timer_H++;
if(finish_timer_H==finish_time)
{

CLI(); // запрещаем все прерывания
PORTB=0x00; // "гасим" порт В (гирлянды)
asm("sleep"); // и засыпаем навсегда......
}
}
}
/*Прерывание по переполнению таймера/счетчика,*/

void timer_0(void) /*Прерывание по переполнению таймера/счетчика, необходимое для выхода из режима пониженого энергопотребления*/
{

timer_1++; // Увеличиваем значение таймера
timer_2++; // Увеличиваем значение таймера
timer_end++; // Увеличиваем значение таймера
finish_timer_L++; // Увеличиваем значение таймера авто-выключения
if(finish_timer_L==0) //Если время выключения гирлянды, то
{
finish_timer_H++;
if(finish_timer_H==finish_time)
{

CLI(); // запрещаем все прерывания
PORTB=0x00; // "гасим" порт В (гирлянды)
asm("sleep"); // и засыпаем навсегда......
}
}
}

И по чемуто не то не то не работает.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru