[an error occurred while processing this directive]
Подсобите please IAR AVR (не переносится параметр в функцию)....
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
Brdm 15 сентября 2006 г. 22:59
|
|
|
|
Есть
extern unsigned int Intr;
есть функция
void Delay(unsigned int Intr)
{
while(Intr) nop();
}
есть прероывания по переполнению Timer0
#pragma vector=TIMER0_OVF_vect
__interrupt void Timer0Handler(void)
{
TCNT0 = 0x00;
if(Intr) Intr--;
}
и допустим main
void main(void)
{
......
Delay(50);
.......
}
Проблема в том, что в прерывании по таймеру параметр Intr меняется, а в main функция Delay работает бесконечно.
Что не так? Спасибо.
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Господа, вы что - сбрендили все, кроме omen? Тут эмбеддеры или где?? ТАК ПЕСАТЬ НИЗЯ, КРОСАВЧЕГИ! — =AVR= (16.09.2006 19:04 80.92.96.19, 3901 байт)
- можно еще так — skn (16.09.2006 00:14 85.249.76.9, 75 байт)
- В функцию Delay параметр передаётся по значению, и цикл While работает с копией Intr, переданной при вызове функции. Передавай ссылку на Intr — CD_Eater (15.09.2006 23:15 83.167.108.152, пустое)
- extern volatile unsigned int Intr; + volatile unsigned int Intr = 0; — DASM (15.09.2006 23:14 212.58.192.14, пустое)
- Ответ: (+)... — ETM (15.09.2006 23:13 62.117.85.87, 116 байт)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание