Mam nastêpuj±cy (i mocno dziwny) problem: Przy ³±czeniu siê w trybie synchronicznym z PC, dane s± przesy³ane tylko w kierunku do mikrokontrolera. W trybie asynchronicznym u¿ywaj±cym przerwañ wszystko jest ok. Co mo¿e byæ przyczyn±?
Funkcje obs³ugi USART s± standardowe, wziête ¿ywcem z dokumentacji Atmela:
static uint8_t RxChar(void) { while( !(UCSRA & (1<<RXC)) ); return UDR; }
static void TxChar(uint8_t x) { while(!(UCSRA & (1<<UDRE))) UDR = x; }
static inline void initComm(void) { outp((unsigned char)0, UBRRH); outp((unsigned char)103, UBRRL); // 9600 baud @ 16MHz
UCSRB = (1<<RXEN)|(1<<TXEN); // 8-bit, 2 stop bits UCSRC = (1<<URSEL)|(1<<USBS)|(1<<UCSZ0)|(1<<UCSZ1); }
Darek ¯o³na