rico65
31.10.2006, 17:38
Ich hatte einen Atmaga168 mit der Fleury-Uart-Library betrieben und
das klappte auf Anhieb. Nun möchte ich dasselbe auf einem
ATMega8 mit internem Takt machen.
Allerdings kommt jetzt beim Senden nichts raus (empfangen habe ich gar nicht probiert); wenn ich es aber ausprogrammiere (u.a. ohne
Interrupt beim Senden) geht es (allerdings nur 1200 Baud):
UCSRB |= (1 << TXEN) | ( 1 << RXEN ); // UART TX, RX einschalten
UCSRC |= ( 1 << URSEL )|( 3<<UCSZ0 ); // Asynchron 8N1
UBRRH = (uint8_t) (UBRR_BAUD>>8); // USART Baud
UBRRL = (uint8_t) UBRR_BAUD;
uart_puts( "**** ATMega8 ****\n\r" );
Wie gesagt, dann mit Fleury geht nichts mehr. Habe den Eindruck, dass das Programm bis 32 Zeichen in einen Buffer schreibt, dann hängt.
Liegt das wohl am internen (ungenauen) Takt, am Interrupt des
Atmega8 oder sonst was ? Danke.
das klappte auf Anhieb. Nun möchte ich dasselbe auf einem
ATMega8 mit internem Takt machen.
Allerdings kommt jetzt beim Senden nichts raus (empfangen habe ich gar nicht probiert); wenn ich es aber ausprogrammiere (u.a. ohne
Interrupt beim Senden) geht es (allerdings nur 1200 Baud):
UCSRB |= (1 << TXEN) | ( 1 << RXEN ); // UART TX, RX einschalten
UCSRC |= ( 1 << URSEL )|( 3<<UCSZ0 ); // Asynchron 8N1
UBRRH = (uint8_t) (UBRR_BAUD>>8); // USART Baud
UBRRL = (uint8_t) UBRR_BAUD;
uart_puts( "**** ATMega8 ****\n\r" );
Wie gesagt, dann mit Fleury geht nichts mehr. Habe den Eindruck, dass das Programm bis 32 Zeichen in einen Buffer schreibt, dann hängt.
Liegt das wohl am internen (ungenauen) Takt, am Interrupt des
Atmega8 oder sonst was ? Danke.