Помогите пожалуйста. Подскажите как симулировать установку флага ICF1
(стр 137 даташита атмега48) в IAR C-SPY ? Этот флаг не ставится сам в AVRstudio VMLAB PROTEUS
Соответственно прерывание не срабатывает. т.е. как написать макрос установки флага при насчете Таймером1
числа 255 или как написать макрос который просто будет вызывать
прерывание (кто только будет сохранять то что нужно сохранить ???)
Лучше все же флаг взводить если СПАЙ прерывание симулирует при этом.
===============
Смотрел пример макросов прерываний в папке C:\Program Files\IAR\AVR5.20.2\avr\tutor
SetupAdvanced.mac (прицеплен
http://www.sharemania.ru/0165742)К сожалению пока не понял как модифицировать его под мой случай.
Если кто может его "подрихтовать" под мою задачу помогите пожалуйста.
===============
Спсибо !
Проекты IAR и AVRstudio в архиве -
http://www.sharemania.ru/0278723Исходник вот:
Код
#include <ioavr.h>
#include <inavr.h>
volatile unsigned char int_ctr, ctr;
void main(void)
{
//Set timer 1 in "Phase correct mode".
TCCR1A = (1 << WGM11);
//Set top value of Timer/counter1.
ICR1 = 0xff;
TCCR1B = (1 << WGM13) | (0 << CS11) | (1 << CS10);
// Enable Timer1 capture event interrupt.
TIMSK1 |= (1 << ICIE1);
//Enable interrupts globally.
__enable_interrupt();
for(;;)
{
ctr++;
}
}
/* Timer1 Capture Evente interrupt service routine.
This interrupt service routine is run everytime the up-down
counting timer0 reaches TOP (0xff). */
#pragma vector=TIMER1_CAPT_vect
__interrupt void Timer1CaptureISR(void)
{
int_ctr++;
}