/**********************************************************************\ * Kurzbeschreibung: *ATMega8a: * * * Datum: Autor: Grund der Aenderung: * 17.07.2016 Tobias Kärner Neuerstellung * \**********************************************************************/ /*--- #defines -------------------------------------------------------*/ #define F_CPU 1000000UL //Taktfrequenz #define BAUD 9600 //Badrate für UART #define UART_ANGEHAENGT '\n' //wird an jeden gesendeten string angehängt #define UART_FOLGEZEICHEN ',' // #define SLAVES_ANGESCHLOSSEN (8*1) //Anzahl der Slave Geräte zum zünden /*--- #includes ------------------------------------------------------*/ #include //Standardregister #include //Interupts #include //warte_Funktion #include //für UART /*--- typedef-Datentypen ---------------------------------------------*/ /*--- Funktionen -----------------------------------------------------*/ void init_uart(void); uint8_t uart_getc(void); void uart_gets( char* Buffer, uint8_t MaxLen ); uint16_t uart_getdata(void); void uart_putc(char c); void uart_puts(char* string); /*--------------------------------------------------------------------*/ int main(void) { /*--- Variablen ---*/ uint16_t zeiten[SLAVES_ANGESCHLOSSEN] = {0}; uint16_t test; int zaehler1; int zaehler2; init_uart(); while(1) //das ist jetzt nur um auszuprobieren ob UART überhaupt noch funktioniert, eigendlich läuft andere while Schleife uart_puts("test "); /*while(1) { uart_puts("\nBitte Eingabe: "); zaehler2 = 0; for (test = uart_getdata(); test != 0; test = uart_getdata()) { zeiten[zaehler2++] = test; uart_putc('\n'); } uart_putc('\n'); for(zaehler1 = 0; zaehler1 < SLAVES_ANGESCHLOSSEN; zaehler1++) { for (zaehler2 = 5; zaehler2 > 0; zaehler2--) { uart_putc((zeiten[zaehler1] % 10) + 48); zeiten[zaehler1] /= 10; } uart_puts(", "); } uart_puts("\n\n"); }*/ return 0; } //////////////////////////////////////////////////////////////////////////////////////// /************************************ UART ********************************************/ //////////////////////////////////////////////////////////////////////////////////////// /*** UART initialisieren ***/ void init_uart(void) { UBRRH = UBRRH_VALUE; UBRRL = UBRRL_VALUE; // evtl. verkuerzt falls Register aufeinanderfolgen (vgl. Datenblatt) UBRR = UBRR_VALUE; #if USE_2X UCSRA |= (1 << U2X); // U2X-Modus erforderlich #else UCSRA &= ~(1 << U2X); // U2X-Modus nicht erforderlich #endif UCSRB = (1<