[an error occurred while processing this directive] [an error occurred while processing this directive]
Непонятно зачем опрос бита RCIF выведен в программу (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Илья 08 февраля 2002 г. 13:45
В ответ на: Фрагмент кода приемна байта(+) отправлено Alowolf 08 февраля 2002 г. 12:05

если это бит прерывания? Приняли, сходили по прерыванию, вышли. И ни каких опросов - всё аппаратно. При работе у UART-ом вообще не припомню проблем за исключением BRGH в PIC16c7(?) - каких-то.

По Вашей программе выходит, что вы раз в 300мс выключаете приемник UARTa? А если в зто время идет прием? OERR и FERR надо опрашивать и
при необходимости считать RCREG и переинициализировать UART.

Еще. Избавляйтесь от порочной (ИМХО) практики работы с битами по номеру. Напишите PIR1,RCIF вместо PIR1,05H и все Вас поймут, да и листинг через год будет для Вас же понятнее. Неужели Вы хотите помнить по номеру все биты в PIC-ах, AVR-ах и пр?
Напишите, например,
#define FLAG_DELAY FLAG,6 и работайте с ним bsf FLAG_DELAY. Почувствуйте разницу:)

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

Ответы



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

E-mail: info@telesys.ru