Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
volatile unsigned int delayMSecond;
//...
void DelayMillisecond(unsigned int time)
{
delayMSecond = time;
while(delayMSecond);
return;
}//...
#pragma vector=TIMER0_COMP_vect
__interrupt void TIMER0_COMP_interrupt(void)
{
// тикает каждую миллисекунду
delayMSecond--;
Blink();
CtrlRun();
}// ...
while(1)
{
LED_DBG_on();
DelayMillisecond(260);
LED_DBG_off();
DelayMillisecond(260);
}
Если задержку ставлю до 256, то все работает как нужно, задержка правильная
а если задержку ставлю больше, то получается что иногда! меньше, как будьто остается только старший байт переменной счетчика, то есть при 260 задержка становится 4
ATmega128, IAR