Странные траблы с компилятором HTPIC-18
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Peter K. 23 марта 2004 г. 08:34

В проге в функции передается переменная (вернее ее значение)

//Объявления
void Measure_mode(unsigned char method);
void save_Archive_Variables(unsigned char method);


void main(void)
{
unsigned char method;
……
……
Measure_mode(method);
……
……
}


void Measure_mode(unsigned char method)
{
……
……
save_Archive_Variables(method); //Первый вызов
……
……
……
……
……
……
save_Archive_Variables(method); //Второй вызов
……
}

void save_Archive_Variables(unsigned char method)
{



}


Проблема в том, что когда из Measure_mode вызывается save_Archive…, то при первом вызове значение переменной method передается правильно. Во время второго – неправильно (почти случайное число). Если во втором вызове method заменить на константу, она будет передана правильно. Причем внутри Measure_mode она неизменна, это много раз проверялось. Глобальной переменной с тем же именем нет. Но точно знаю, если заменить передачу ее значения на глобальную переменную, все нормализуется и будет работать. Только не нравится мне такой подход. Хочется разобраться, в чем же дело. :-)
Ваши предположения?

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

Ответы



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

E-mail: info@telesys.ru