Hi,
Hier Codes für den Mega32 UART:
hier drei Funktionen (uart.c):
UART_init(); Den UART Einschalten, hier wird auch der Empfangsinterrupt aktiviert. Dein Hauptprogramm muss dann so aussehen:Code:void UART_init(void){ UBRRL |= (uint8_t) UART_BAUD_SELECT; UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN); UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); } void UART_transmit(uint8_t c){ while(!(UCSRA & (1<<UDRE))); UDR = c; } void UART_transmit_string(uint8_t *string){ while(!(UCSRA & (1<<UDRE))); while( *string){ UART_transmit (*string++); } }
Code:// AVR-Includes #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> // Programm-Includes #include <uart.c> // Oder die obigen Funktionen hinschreiben... SIGNAL( SIG_UART_RECV ) { /*hier was beim Enpfang geschehen soll*/ } int main (void){ sei(); // Interrups global aktivieren UART_init(); // UART init funktion ausführen while(1){ /*HAUPTSCHLEIFE*/ } }







Zitieren

Lesezeichen