Задача : управление с компьютера, программой на Lazaruse, 16-ю реле. Контроллер на PIC 16F628A , имеющий аппаратный USART. По передачей с Lazarusa и приемом контроллером вопросов нет. Отправляю по 2 байта - 16 реле. Подумал , нет обратной связи , вдруг кабель оборвут . Решил после приема контроллером 2-х байт отправлять их обратно на комп и там сравнивать. Pic 628 принимает без проблем , а при передаче возникла непонятная проблема . Как только я записываю данные в TXREG у меня программа уходит на перезагруз, начинает работать со старта, если заремить команды movwf TXREG, этого не происходит. Может кто сталкивался ? WDT ни при чем , я его запрещал , то же самое.
Код программы на передачу : bcf Intcon,Gie ; Глобальный запрет прерываний bcf RCSTA,CREN ; Запрещение приема bsf PortB,Receiv ; Включение 75176 на передачу данных bsf Status,RP0 ; Переход в 1-й банк. bsf TXSTA,TXEN ; Разрешение передачи bcf Status,RP0 ; Переход в 0-й банк. movf OutLow,W ; movwf TXREG ; movf OutHigh,W ; movwf TXREG ; bsf Status,RP0 ; Переход в 1-й банк. clrwdt ; btfss TXSTA,TRMT ; Байты отправлены ? goto $-2 ; нет bcf TXSTA,TXEN ; Запрет передачи bcf Status,RP0 ; Переход в 0-й банк. bcf PortB,Receiv ; Включение 75176 на прием данных bsf RCSTA,CREN ; Разрешение приема
Судя по диаграмме на даташит буфер TSR освободится только после отправки двух байтов , что TSR пуст проверяется clrwdt ; btfss TXSTA,TRMT ; Байты отправлены ? goto $-2 ; нет Но дело не в этом , до этого я отправлял байты по одному и дожидался освобождения TSR после каждого байта , было то же самое. Сейчас еще проверю байт конфигурации , может какой нибудь BOR влияет . Я использую блок питания от компьютера и с этой стороны подвоха не ожидал
Добавлено after 3 minutes 50 seconds: Из Даташит: Можно сначала загрузить данные в TXREG, а затем установить бит TXEN. Как правило, после разрешения передачи регистр TSR пуст, таким образом, данные записываемые в TXREG сразу передаются в TSR, а TXREG остается пустым. Это позволяет реализовать слитную передачу данных (см. рисунок 12-6).
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения