Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; 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.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите два из трёх, получится:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru