Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Помогите переписать прерывание в функцию (возвращаясь к вчерашнему UDREvect).
Отправлено
Dikoy 18 января 2008 г. 10:10
Рашьше нужный мне код выполнялся в теле прерывания UDRE. То есть прого влетала в UDREvect, пробегала по кучке if и switch, понимала, что ей сейчас надо сделать, клала очередной байт в UDR и вылетала из прерывания при помощи return;
Сейчас вместо UDR у меня буфер USB. И если раньше мне надо было ждать, пока UART передаст очередной заряженый в него байт (для этого и было прерывание, чтобы время не терять) то сейчас я могу тупо забить буфер в цикле и выполнить отправку одним флажком.
Внимание вопрос - на что бы такое заменить return;, чтобы прога не вылетала из функции, дойдя до места, где был return;, а просто пререпрыгивала в начало цикла?
Тупо убрать return; я не могу: если прога будет пробегать весь код, то она много лишнего наделает... Там всё расcчитано именно на то, что дойдя до нужного момента прога вылетит из прерывания.
[b]goto[/b] вроде не рекомендуется использовать... Что посоветуете?
Работаю в IAR 4.30, пишу под AT90USB1287.
Составить ответ | Вернуться на конференцию
Ответы