Подскажите пути решения проблем с USART на PIC
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Igor_O 11 марта 2004 г. 15:28

Есть девайс, сделанный на PIC 16F628A (20МГц), необходимо перейти на 4МГц или 10МГц(из-за того, что PIC на 20МГц хочет 4,5В (даташит)
Если переделать все инициализации на 10МГц, то USART вместо 19200 будет на 1,6% меньше. Удаленное устройство не понимает.
Если -- на 4МГц, то пп. приема иногда дает ошибки (очень похоже PIC не успевает обработать все команды за промежуток между байтами.
Вот сама пп.
Read_str:
movlw .40
movwf Length_str
movf String_xXD,w ; Адрес начала строки для ввода
movwf FSR
bsf RCSTA, CREN ;RXD - ON

Repeat_read:
movf sec,w ; and compare with actual one
subwf Dial_time,w
btfss STATUS,Z
goto Cont_Rep_r ; 3 сек прошла
bsf bit_flag2,2 ;установить флаг
goto end_read_ERR
Cont_Rep_r:
btfss PIR1,RCIF ; Проверкa флaгa приемa бaйтa
goto Repeat_read
movf RCREG,w
movwf Char_RXD
sublw H'0A'
btfsc STATUS,Z
goto end_read ; Принят символ конца строки
movf Char_RXD,w
movwf INDF
incf FSR
decfsz Length_str
goto Repeat_read
end_read:
movlw H'0A'
movwf INDF
end_read_ERR:
bcf RCSTA, CREN ;RXD - OFF
return


Help!

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

Ответы



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

E-mail: info@telesys.ru