Первая передача четырёх байт в прогр. rs232.c идет нормально. Видимо проверять буфер не надо, проверяется компилятором.
Нет ответа на запрос. Видимо в программе ответа rs232_otvet.c ошибки
//Программа принимает байты и отправляет ответы
unsigned char d1,d2,d3,d4,d5,d6,d7,d8 ;
char i = 0 ;
// программа посылает ответы на запросы
void main(void) {
Usart_Init(2400);
Lcd_Config(&PORTB,4,5,6,7,2,1,0);
Lcd_Init(&PORTB); // Initialize LCD on PORTC
Lcd_Cmd(LCD_CLEAR); // Clear display
Lcd_Cmd(LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1, 1, "kamera");
Lcd_Out(2, 1, " 60");
if (Usart_Data_Ready()) { // если данные приняты
d1 = Usart_Read(); // прочитать первый байт
d2 = Usart_Read(); // прочитать второй байт
d3 = Usart_Read(); // прочитать третий байт
d4 = Usart_Read(); // прочитать четвёртый байт
if ((d1 == 0xF1) && (d2 == 0x01) && (d3 == 0xF4) && (d4 == 0x3C)) {
Usart_Write(0xFE);
Lcd_Out(1, 7, "otvet");
Lcd_Out(2, 7, "FE");
} else Lcd_Out(1, 7, "error");
}
if (Usart_Data_Ready()) { // если данные приняты
d5 = Usart_Read(); // прочитать байт
}
if (d2 == 0xFD) {
Usart_Write(0x0A),
Lcd_Out(1, 7, "otvet");
Lcd_Out(2, 7, "0A");
} else Lcd_Out(1, 7, "error");
if (Usart_Data_Ready()) { // если данные приняты
d6 = Usart_Read(); // прочитать байт
}
if (d6 == 0x74) {
Usart_Write(0x0A),
Lcd_Out(1, 7, "menu");
Lcd_Out(2, 7, "ok");
} else Lcd_Out(1, 7, "error");
// } //while (1);
}//~!
|