ПРОГРАММА MARS-PHOBOS_V1.5
хуй
void main(){
// Настройка PD6 как выход и установка высокого уровня
DDRD|=(1<<PD6);
PORTD|=(1<<PD6);
// Инициализация UART
UART_Hard_Init();
UART_Soft_Init();
// Тестовое сообщение при старте
UART_Soft_Send_String("System initialized.\r\n");
while(1){
// Ждем начала пакета: 0x5A
uint8_t header1 = UART_Hard_Receive();
if(header1 !=0x5A)continue;
// Ждем второго байта заголовка: 0xA5
uint8_t header2 = UART_Hard_Receive();
if(header2 !=0xA5)continue;
// Читаем длину (количество байт после length, включая command и data)
uint8_t length = UART_Hard_Receive();
// Буфер для пакета (заголовок + length + data)
uint8_t packet[MAX_PACKET_SIZE];
packet[0]=0x5A;
packet[1]=0xA5;
packet[2]= length;
// Читаем оставшиеся байты (length байт)
for(uint8_t i =0; i < length; i++){
packet[3+ i]= UART_Hard_Receive();
}
// Полный размер пакета
uint8_t total_size =3+ length;
// Отправляем префикс без переноса строки
UART_Soft_Send_String("Next data Received from DWIN: \n");
// Отправляем пакет как HEX-строку с пробелами между байтами, без trailing space
for(uint8_t i =0; i < total_size; i++){
UART_Soft_Send_Hex_Byte(packet[i]);
if(i < total_size -1){
UART_Soft_Transmit(' ');
}
}
// Завершаем строку
UART_Soft_Send_String("\r\n");
}
return0;
}