Подскажите пожалуйста!
Вопрос в том что вывести в окно символ получается, а ввести пишет
UART-W0002: Read attempted from an Empty RCREG SFR, invalid data
Примеры в Хелпе для PIC18, а у меня PIC16F877A
Подскажите что я делаю не так?
Создао специально простой пример для теста:
#include <pic.h>
__CONFIG(0x03F72);
unsigned char indata;
unsigned char outdata;
void main(void)
{
// Инициализация USART
SPBRG = 25; // Установка скорости обмена данными 2400 при 4 МГц
BRGH = 0; // Низкоскоростной режим генератора частоты обмена
SYNC = 0; // Асинхронный режим передачи данных
SPEN = 1; // Включаем модуль USART
CREN = 1; // Разрешаем прием данных
TXEN = 1; // Разрешаем передачу данных
while(1)
{
if(RCIF)
{
indata = RCREG;
if(indata==100)
{
TXREG=indata;
}
}
}
}
Оздаю файл indata.txt
//single-packet example
wait 20 ms
10 20 34
Подключаю его Debugger>Settings, UART IO tab.
# Устанавливаю "Enable UART1 I/O".
# Выбираю indata.txt as the "Input" file. Check "Rewind Input" so the program will read the input file again once it has reached the end-of-file.
# Выбираю "Window" under "Output" to display USART output on the SIM UART1 tab of the Output window
Компилирую.
Прохожу МПЛАБ СИМ:
1. Флаг RCIF не устанавливается, соответственно не попаем на фрагмент считывания из RCREG.
2. Изменяю if(RCIF) на if(!RCIF) получаю

UART-W0002: Read attempted from an Empty RCREG SFR, invalid data
Подскажите пожалуйста где копать.