Друзья, здравствуйте. Помогите продиагностировать неисправность. Использую USART мк ATMega64 для передачи пакетов по RS485. При переносе прошивки с макета на конечное устройство начала глючить эта функция. Чтобы я не отсылал с борта мк, целый пакет или просто байт, получаю стандартную комбинацию 00 3F. Передать на его сторону тоже не получается по той же причине. Разводку платы устройства и макета устал сравнивать, отличий нет, используются те же выводы, те же микросхемы.
Код
#define F_CPU 14745600UL
unsigned int BAUDR=F_CPU/57600UL/16UL-1;
DDRE=0b11110100; //PE0-RX, PE1-TX, PE2-!RE/DE
PORTE|=0b11110000;
UBRR0H = (unsigned char)(BAUDR>>8);
UBRR0L = (unsigned char)BAUDR;
UCSR0C=(1<<UCSZ00)|(1<<UCSZ01);
UCSR0B|=(1<<RXEN0)|(1<<RXCIE0);
void sendByte(char bb){
cli();
PORTE|=0b00000100;
UCSR0B &= ~(1<<RXEN0);
UCSR0B |= (1<<TXEN0);
while(!(UCSR0A & (1<<UDRE0)));
UDR0=bb;
_delay_ms(5);
PORTE&=~0b00000100;
UCSR0B &= ~(1<<TXEN0);
UCSR0B |= (1<<RXEN0);
sei();
}