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

 
 
> проблема с прерыванием TIMER2_COMP
tolik_zp
сообщение Jan 24 2007, 09:51
Сообщение #1


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

Группа: Участник
Сообщений: 127
Регистрация: 2-08-06
Пользователь №: 19 265



Есть такой код в функции main:

if (UCSRA & (1<<RXC))
{
__disable_interrupt();
rtc_day = UDR;
while (!(UCSRA & (1<<RXC)));
rtc_hour = UDR;
while (!(UCSRA & (1<<RXC)));
rtc_min = UDR;
while (!(UCSRA & (1<<RXC)));
rtc_sec = UDR;
__enable_interrupt();

Beep_Short();
}

if (!(PIND & (1<<PD7)))
{
Beep_Low();

USART_Transmit(rtc_sec);
USART_Transmit(rtc_min);
USART_Transmit(rtc_hour);
USART_Transmit(rtc_day);
while (!(PIND & (1<<PD7)));
}


Также имеем следующий обработчик прерывания:

#pragma vector = TIMER2_COMP_vect
__interrupt void rtc_interrupt (void)
{
rtc_0125_sec++;
if (rtc_0125_sec == 8)
{
rtc_0125_sec = 0;
rtc_sec++;
}
if (rtc_sec == 60)
{
rtc_sec = 0;
rtc_min++;
}
if (rtc_min == 60)
{
rtc_min = 0;
rtc_hour++;
}
if (rtc_hour == 24)
{
rtc_hour = 0;
rtc_day++;
}
if (rtc_day == 8)
rtc_day = 1;
}

Прерывание работает нормально, проверено. Проблема в том, что иногда, после получения из UART'а данных, программа виснет, но прерывание по-прежнему работает. Такое впечатление, что PC улетает в неведомые дали. StartUp-код стандартный IAR'овский, проц мега8. Подскажите, всезнающий all, в чем может быть проблема?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andrvisht
сообщение Jan 24 2007, 10:29
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



Цитата(tolik_zp @ Jan 24 2007, 10:51) *
Есть такой код в функции main:

Код
А этот код должен исполниться только 1 раз ?
или он должен гоняться в цикле ?
если 2-е то добавьте
__task void main(void)
{
    while (1)
   {
   Ваш код
   }
}

поставте больший уровень оптимизации или расширьте CSTACK.
это в опциях проекта в General Options/System
Go to the top of the page
 
+Quote Post



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

 


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


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