MEGA8, 12 MHz использую UART передатчик (приемник отключен), скорость передачи 250кбит
// UART 250000, 8N2
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x0E;
UBRRH=0x00;
UBRRL=0x02;
Передаю так
Код
for(;;){
usbPoll();
if (UCSRA&(1<<UDRE)) {
flag=0;
if ((dmxcnt&8000)==8000) { //если dmxcnt<0
if (dmxcnt==(-3)) {UCSRB=UCSRB&247; PORTD=PORTD&253; } //выключаем UART, делаем break
if (dmxcnt==(-2)) {PORTD=PORTD&253; }
if (dmxcnt==(-1)) PORTD |=(1<<1); //MaB
} else {
UCSRB=UCSRB|8;
UDR=dmxbuf[dmxcnt];
}
dmxcnt++;
if (dmxcnt>dmxlen) dmxcnt=(-3);
}
}
Тыкаю осциллографом - а стоповый бит всего один! А где второй?