Moin, kennt sich jemand mit dem RX-Interrupt beim AT-Mega8 aus ? Der Controller hängt sich auf, sobald er ein Zeichen empfängt ... Hier ein paar Codeschnipsel (aus der Testphase ;-) : SIGNAL(SIG_UART_DATA) { char tmp; tmp=UDR; delay_ms(20); UDR=66; } int main() { bit_off(UCSRC, UMSEL); //Asynchronous Transmission bit_off(UCSRC, UPM0); //No parity bit_off(UCSRC, UPM1); bit_off(UCSRC, USBS); // 1 Stop bit_off(UCSRC, UCSZ0); //Char-Size 8Bit bit_off(UCSRC, UCSZ1); bit_off(UCSRC, UCSZ2); UBRRH = 0x00; UBRRL = 0x19; bit_on(UCSRB, RXEN); //Receiver enable bit_on(UCSRB, TXEN); //Transmitter enable bit_on(UCSRB, RXCIE); //RX INT enable sei(); ... } Vielen Dank! Greetz, thorsten www.lasertechnix.de
Hi, probiere mal: SIGNAL(SIG_UART_RECV) { ... } SIG_UART_DATA wird aufgerufen wenn das UDR-Register leer ist. Gruß Andreas
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.