uart.c-Dateireferenz

gibt Zugriff auf serielle Schnittstelle Mehr ...

#include "uart.h"

Include-Abhängigkeitsdiagramm für uart.c:


Funktionen

void uart_init (void)
int uart_sendc (char c, FILE *dummy)
int uart_receive (FILE *dummy)
uint8_t uart_gets (char *buffer, uint8_t maxlen)
void uart_sends (char *s)
void uart_clear (void)
 ISR (USART_RXC_vect)

Variablen

volatile uint8_t uart_str_complete = 0
volatile uint8_t uart_str_count = 0
volatile uint8_t uart_timeout = 0
volatile char uart_string [UART_MAXSTRLEN+1] = {'\0'}

Ausführliche Beschreibung

gibt Zugriff auf serielle Schnittstelle

Autor:
Lars Neubert
Datum:
Feb 2010

Dokumentation der Funktionen

void uart_init ( void   ) 

Initialisiert die UART Schnittstelle des Mikrocontrollers mit gewählter Baudrate (Asynchrone 8N1).

int uart_sendc ( char  c,
FILE *  dummy 
)

Sendet ein Zeichen

Parameter:
c Zeichen welches gesendet werden soll.
dummy wir lediglich benötigt, um die Ausgabe Standard Ein-/Ausgabe umzuleiten (kann NULL gesetzt werden)

int uart_receive ( FILE *  dummy  ) 

Wartet bis ein Zeichen verfügbar ist und gibt dieses zurück

Parameter:
dummy wir lediglich benötigt, um die Ausgabe Standard Ein-/Ausgabe umzuleiten (kann NULL gesetzt werden)
Rückgabe:
empfangenes Zeichen

uint8_t uart_gets ( char *  buffer,
uint8_t  maxlen 
)

Liest ankommende Zeichen in buffer bis maxlen bzw. newline

Parameter:
buffer für Zeichenkette
maxlen maximale Anzahl der empfangenen Zeichen (Länge der Zeichenkette)
Rückgabe:
Anzahl der empfangenen Zeichen (mit 'Stringende-Zeichen')

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

void uart_sends ( char *  s  ) 

Sendet eine Zeichenkette

Parameter:
s Pointer auf Zeichenkette

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

void uart_clear ( void   ) 

Löscht das Emfangsregister der seriellen Schnittstelle

ISR ( USART_RXC_vect   ) 

Interruptroutine zum Empfang von Zeichen
Speichert empfangene Zeichen in globale Variable 'string' unter Nutzung von 'maxstrlen' und 'str_count' (siehe uart.h).
Ist eine komplette Zeichenkette empfangen, wird das globale Flag 'str_complete' gesetzt (=1, siehe uart.h).
Das Flag dient der Hauptanwendung zur Signalisierung, dass die Zeichenkette verarbeitet werden kann.
Um neue Zeichenketten zu empfangen, muss das Flag wieder rückgesetzt werden (=0).


Variablen-Dokumentation

volatile uint8_t uart_str_complete = 0

Das Flag signalisiert der Hauptanwendung, dass eine komplette Zeichenkette in der Rx-Interruptroutine empfangen wurde und verarbeitet werden kann.
Eine komplette Zeichenkette wird durch das Erreichen von 'maxstrlen' oder dem empfangenen Zeichen für 'lf' signalisiert.
Um neue Zeichenketten zu empfangen, muss das Flag wieder rückgesetzt werden (=0).
str_complete=1 --> Zeichenkette komplett
str_complete=0 --> Zeichenkette nicht komplett (warten bis maxstrlen-Zeichen oder 'lf')

volatile uint8_t uart_str_count = 0

zählt die Anzahl der empfangenen Zeichen.

volatile uint8_t uart_timeout = 0

globale Variable zum Zählen der Timer-Interrupts

volatile char uart_string[UART_MAXSTRLEN+1] = {'\0'}

Definiert globale Zeichenkette, welche empfangene Zeichen der Rx-Interruptroutine beinhaltet.
Die Größe der Zeichenkette wird durch maxsrtlen+1 festgelegt (maxstrlen+1 --> maxstrlen Zeichen + 'Stringende-Zeichen').


Erzeugt am Mon May 24 14:41:58 2010 für Siemens_Handy von  doxygen 1.5.7.1