Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Приотладке не заходит в прерывание
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Vyatsek
#include <intrinsics.h>
#include <iom16.h>
#include <string.h>


void InitTimer()
{
TIMSK=0x10;
TCCR1A=0x10;
TCCR1B=0x0A;
OCR1AL=0x30;OCR1AH=0x00;
OCR1BH=0x00;OCR1BL=0x07;
PORTD=0x00;
DDRD=0x10;
}



#pragma vector=0x00C //timer comp a
__interrupt void qinterrupt(void)
{
char c;
c='4';
}



int main( void )
{
__enable_interrupt();
InitTimer();
while(1);
}

при отладке не заходит в прерывание и как правильно в IAR написать прерывание на таймер, кто знает подскажите или пример кода привидите
VladislavS
Кусок работающего кода

Код
#include <iom8.h>
#include <ina90.h>

#pragma vector=TIMER1_COMPA_vect
__interrupt void TIMER1CM()
{

}

int main()
{
 TCCR1B=(1<<WGM12)|(1<<CS12)|(1<CS10);
 OCR1AH=0;
 OCR1AL=1;
 TIMSK=(1<<OCIE1A);
 __enable_interrupt();
 
 while(1);
 
}
SL@V@
При отладке в симуляторе IAR-а не симулируются периферийные устройства микроконтроллера. Для работы с прерываниями их надо задавать искуственно в меню Simulator/Interrupts, либо отлаживать в симуляторе AVRStudio
BVU
Недавно писал, все работает, как часы! Вернее часы и работают, с погрешностью 2сек. за 24 часа (кварц хороший попался smile.gif ):

// IRQ TIMER1_COMPA
#pragma vector = TIMER1_COMPA_vect
__interrupt void timer1_compA_Processing(void)
{
char pd;

tick++;
***
***
***
__enable_interrupt();
}

void InitTimers(void)
{
/* Initialization Timer1 */
OCR1A = EIGHTH_sec; // Set compare value on one second.
TIMSK = (1 << OCIE1A); // Set mask to enable Timer1A compare interrupt.
TIFR = (1 << OCF1A); // Clear pending interrupts Timer1A.
TCCR1B = ((1 << WGM12) | (1 << CS11) | (1 << CS10)); // Set CTC and prescaller on 64.
}

Рекомендую Вам использовать форму записи битовой инициализазии такую: 1 << WGM12. Это просто наглядней и дает меньше шансов запутаться, хотя каждый делает на свой 'цвет'. glare.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.