Перейти к содержанию
    

Приотладке не заходит в прерывание

#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 написать прерывание на таймер, кто знает подскажите или пример кода привидите

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кусок работающего кода

 

#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);
 
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При отладке в симуляторе IAR-а не симулируются периферийные устройства микроконтроллера. Для работы с прерываниями их надо задавать искуственно в меню Simulator/Interrupts, либо отлаживать в симуляторе AVRStudio

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Недавно писал, все работает, как часы! Вернее часы и работают, с погрешностью 2сек. за 24 часа (кварц хороший попался :) ):

 

// 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:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...