Ответ: Ответ: Нет. Именно переход по меткам, при каждом новом прерывании обрабатывается определенный в предшествующем прерывании кусок кода:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Nikolaj 17 сентября 2004 г. 09:13
В ответ на: Ответ: Вы хотите вызывать функцию по указателю, а спрашиваете про адрес метки. Это разные вещи. Попробуйте так отправлено _VAI 17 сентября 2004 г. 08:43

Строка "address = (unsigned long)Lab_2;" - лажа, ни о к5аком адресе метки речи здесь нет - компилер говорит что идентификатор Lab_ не определен. Что для Си верно.
Код ниже точнее отражает суть проблемы.

void ADC_Routine(void){
static unsigned long address;

__indirect_jamp_to(address); //

Lab_1:
if(ADC_Data_Reg < Middle){
address = (unsigned long)Lab_2;
}
else{
address = (unsigned long)Lab_3;
}
StartADC();
return;

Lab_2:
....;
....;
....;
....;
address = (unsigned long)Lab_3;
return;

Lab_3:
....;
....;
....;
....;
address = (unsigned long)Lab_4;
return;
}

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

Ответы



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

E-mail: info@telesys.ru