Подскажите как симулировать установку флага ICF1
(стр 137 даташита атмега48) в IAR C-SPY ?
Этот флаг не ставится сам в AVRstudio VMLAB PROTEUS
Соответственно прерывание не срабатывает.
т.е. как написать макрос установки флага при насчете Таймером1
числа 255 или как написать макрос который просто будет вызывать
прерывание (кто только будет сохранять то что нужно сохранить ???)
Лучше все же флаг взводить если СПАЙ прерывание симулирует при этом.
Спсибо !
Проекты IAR и AVRstudio в прицепе
Исходник вот:
*/
#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++;
ctr++;
ctr++;
ctr++;
ctr++;
ctr++;
ctr++;
ctr++;
ctr++;
ctr++;
ctr++;
ctr++;
ctr++;
ctr++;
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++;
int_ctr++;
int_ctr++;
int_ctr++;
int_ctr++;
}