Вопрос по работе с RS232?
- Сообщения: 7
- Зарегистрирован: Ср ноя 11, 2009 17:27:25
Есть команда Input для ввода данных, но на этой команде МК впадает в ступор пока не придет инфа с ком порта... Это не есть хорошо, как это обойти? Требуется чтоб цикл крутился, но при приходе данных они обрабатывались. В общей как сделать чтоб Input не стопорил прогу?
- Реклама
Прерывания. Конкретно, на получение байта с USART.
Основной цикл программы будет работать, пока не появятся данные в порту, при поступлении прервётся выполнение основной программы и управление перейдёт в обработчик.
Основной цикл программы будет работать, пока не появятся данные в порту, при поступлении прервётся выполнение основной программы и управление перейдёт в обработчик.
- Сообщения: 7
- Зарегистрирован: Ср ноя 11, 2009 17:27:25
Как раз то что нужно!sun писал(а):Прерывания. Конкретно, на получение байта с USART.
Основной цикл программы будет работать, пока не появятся данные в порту, при поступлении прервётся выполнение основной программы и управление перейдёт в обработчик.
Эм... я в МК еще сАвсЭм ламер, только начал изучение, сейчас собираю электро печку для авто, управление с КарПС, вот потребовалось общение с компом...
Можно код в баскоме как сие реализовать если не сложно???
Я сам начинаю только разбираться с контроллерами, писал в си (WinAVR), могу исходник предложить почитать.LeonVS писал(а):Как раз то что нужно!sun писал(а):Прерывания. Конкретно, на получение байта с USART.
Основной цикл программы будет работать, пока не появятся данные в порту, при поступлении прервётся выполнение основной программы и управление перейдёт в обработчик.
Эм... я в МК еще сАвсЭм ламер, только начал изучение, сейчас собираю электро печку для авто, управление с КарПС, вот потребовалось общение с компом...
Можно код в баскоме как сие реализовать если не сложно???
А так всё в даташите описано, довольно таки понятно.
Исходником помогу только вечером, когда буду дома, на флешке не оказалось.
- Реклама
- Сообщения: 7
- Зарегистрирован: Ср ноя 11, 2009 17:27:25
вот с бейсиком я лет так дцать уже как не дружу, пока что только сиLeonVS писал(а):Увы, с СИ не дружу совсем...
Знаю басик со школьных времен, на нем собственно и пишу софтинкуТермометр здесь нашел разобрался, пашет выплевывая данные на ком порт, теперь вот надо прием данных победить
- Сообщения: 7
- Зарегистрирован: Ср ноя 11, 2009 17:27:25
Если в баскоме, то используйте для приёма прерывание On URXC. Соответственно надо разрешить глобальные прерывания, разрешить URXC и указать метку, где будет лежать обработчик.
Даже остановленные часы два раза в сутки показывают правильное время.
- Сообщения: 7
- Зарегистрирован: Ср ноя 11, 2009 17:27:25
К сожалению для меня глобальные прерывания и URXC мало что означают.... А можно для "особо одаренных" разжевать и примерчик привести?Секретный кот писал(а):Если в баскоме, то используйте для приёма прерывание On URXC. Соответственно надо разрешить глобальные прерывания, разрешить URXC и указать метку, где будет лежать обработчик.
Заранее благодарен!!!
Код: Выделить всё
On URXC rs232in
Enable URXC
Enable Interrupts
Maincycle: ;здесь основная зацикленная программа
...
Goto maincycle
rs232in: ;обработчик прерывания
RBYTE = UDR ;считывание принятого по UART байта
ReturnДаже остановленные часы два раза в сутки показывают правильное время.
- Сообщения: 7
- Зарегистрирован: Ср ноя 11, 2009 17:27:25
Все так просто??? СПАСИБО!!! Завтра буду теститьСекретный кот писал(а):Последний принятый байт всегда будет помещаться в переменную RBYTE, с которой сможет работать основная программа.Код: Выделить всё
On URXC rs232in Enable URXC Enable Interrupts Maincycle: ;здесь основная зацикленная программа ... Goto maincycle rs232in: ;обработчик прерывания RBYTE = UDR ;считывание принятого по UART байта Return
А можно:
Maincycle:
...
Goto maincycle
Заменить на:
DO
...
LOOP
ЛегкоLeonVS писал(а):А можно:
Maincycle:
...
Goto maincycle
Заменить на:
DO
...
LOOP
Я просто по привычке использую Goto метку, чтобы можно было на неё перепрыгивать из любого места основного цикла.
Даже остановленные часы два раза в сутки показывают правильное время.
- Сообщения: 7
- Зарегистрирован: Ср ноя 11, 2009 17:27:25
Н З ЧТ )))LeonVS писал(а):СПАСИБ!!! Все крутится как мне и надо, даже не ожидал что так все просто
Даже остановленные часы два раза в сутки показывают правильное время.


