Траблы с __regvar в IAR EW3.10C
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено G}{OST 07 мая 2004 г. 12:49

Допустим, есть некий counter, который устанавливается в main(), а используется в прерывании. Пишем:


__regvar __no_init volatile char counter @ 15;
__C_task void main(void)
{
counter = 10;
}

#pragma vector=TIMER0_OVF_vect
__interrupt void IntTimer0(void)
{
if (counter)
{
PORTC_Bit0 = 1;
counter--;
}
else
PORTC_Bit0 = 0;
}

Строку в main() компилятор пропускает как пустое место, при любой степени оптимизации :( Можно конечно asm-вставку сделать, но хочется по-человечески...

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru