[an error occurred while processing this directive]
|
Вроде простая прога мигает светодиодами. Целый день мучаюсь - ну неработает и все. В дебагере все нормально. Заливаю в AT90S2313 -
не работает и все.
Убираю if из цикла while, просто вызываю функцию всегда - все работает.
Всавляю if - такое ощущение что даже в main не входит!!!?????
/*********************************************************/
#pragma language=extended
#include "io2313.h"
#include "ina90.h"
unsigned char flag = 10;
long k = 0;
long j = 0;
interrupt [INT0_vect] void INT0_interrupt(void)
{
flag = 20;
PORTB |= 4;
GIMSK = 0x00;
}
interrupt [INT1_vect] void INT1_interrupt(void)
{
flag = 20;
PORTB |= 4;
GIMSK = 0x00;
}
void f1(void);
void main(void)
{
DDRD = 0x63;
DDRB = 0xDF;
PORTD = 0xFF;
PORTB = 0x20;
GIMSK = 0xC0;
_SEI();
while(1)
{
if (flag == 20) f1();
//если убрать if, просто вызывать f1() то все работает
//а в этом варианте не работает
for (j=0; j<3000; j++){
PORTB |= 2;
}
for (j=0; j<3000; j++){
PORTB &= 0xFD;
}
}
}
void f1(void)
{
PORTB |= 0x04;
}
E-mail: info@telesys.ru