Ok, nun hab ich die init umgeschrieben:
Aber das Resultat war noch nicht zufriedenstellend, daher hab ich in die SIGNAL noch folgendes reingepackt:Code:void usart_init(int Enable, int Interupts) { if (Enable & READ) UCSRB = (1<<RXEN); if (Enable & WRITE) UCSRB |= (1<<TXEN); if (Enable & (READ + WRITE) ) UCSRB = ( (1<<RXEN) | (1<<TXEN) ); if (Interupts & READ) UCSRB |= (1<<RXCIE); if (Interupts & WRITE) UCSRB |= (1<<TXCIE); if (Interupts & (READ + WRITE) ) UCSRB |= ( (1<<RXCIE) | (1<<TXCIE) ); UBRRL = (unsigned char) USART_BAUD_SELECT; }
Man soll zwar net im Interupt wieder schreiben, aber naja....Code:usart_writeChar('['); usart_writeChar(data); usart_writeChar(']');
Resultat is jedenfalls folgendes:
HmmHello World[H][e][r][[][[][[][[][[][[][[][[][[][[][[][[][[][[][[][[]...
Warum muss man das egtl mit & verbinden und kann net mit == vergleichen?
Und muss ich dann vllt in der 3ten iif (Enable & WRITE & READ) schreiben?






Zitieren


Lesezeichen