uart.h / uart.c    



uart beinhaltet rudimentäre Funktionen für den Umgang mit einer seriellen Schnittstelle. Die Anschlüsse der seriellen Schnittstelle sind PD5 für transmit data (RxD) und PD6 für receive data (RxD). Zudem kann über einen Define-Schalter eine Funktion zum Einlesen eines dezimalen Integerwertes aktiviert werden.

Vorhanden Funktionen sind:
           void uart_init(uint32_t baudrate);
           void uart_putchar(uint8_t ch);
           uint8_t uart_getchar(void);
           uint8_t uart_ischar(void);                   
wenn mittels #define aktiviert:
           int16_t readint(void);
    Die Funktionen im einzelnen    



    uart_init    

           Prototyp: void uart_init(uint32_t baudrate);
initialisiert die serielle Schnittstelle mit dem Protokoll 8 Datenbits, keine Parität, 1 Stopbit (8N1).

Übergabe:
      baudrate : einzustellende Baudrate


    uart_putchar    

           Prototyp: void uart_putchar(uint8_t ch);
sendet ein Zeichen auf der seriellen Schnittstelle

Übergabe:
      ch : zu sendendes Zeichen

    uart_getchar    

           Prototyp: uint8_t uart_getchar(void);
wartet solange, bis auf der seriellen Schnittstelle ein Zeichen eingegangen ist und liest dieses ein.

Rückgabe:    gelesenes Zeichen


    uart_ischar    

           Prototyp: uint8_t uart_ischar(void);
testet, ob auf der seriellen Schnittstelle ein Zeichen eingegangen ist, liest dieses aber nicht ein. uart_ischar wartet auch nicht auf ein eingehendes Zeichen und blockiert von daher den Programmablauf nicht.

Rückgabe:
      1 : es ist ein Zeichen eingetroffen
      0 : eis ist kein Zeichen verfügbar



    readint    

           Prototyp: int16_t readint(void);
Da readint per default nicht verfügbar ist, muß diese Funktion in der Header-Datei durch einen Define-Schalter freigeschaltet werden:
               #define readint_enable     1
readint liest einen 16-Bit signed Integer auf der seriellen Schnittstelle ein, der Eingabebereich reicht hier allerdings nur von -32767 .. +32767. Eine Korrektur ist mit der Backspacetaste (löschen nach links) möglich.

Rückgabe:    eingelesener dezimaler Integerwert (16 Bit)