UART (RS232) Funktionen (mit Interrupt). Mehr ...
#include <avr/io.h>
gehe zum Quellcode dieser Datei
Funktionen | |
int8_t | init_uart_int (int16_t ubrr, int8_t sendpuffersize, int8_t receivepuffersize) |
Initialisierung der Interrupt basierten UART-Funktionen. | |
int8_t | init_uart_int_default () |
Initialisierung der Interrupt basierten UART-Funktionen mit Standardwerten. | |
int8_t | putc_i (int8_t c) |
Schreibt ein Zeichen/Byte in den Sendebuffer. | |
int8_t | getc_i () |
Empfang eines Zeichens. | |
int8_t | gets_i (int8_t *string, uint8_t length) |
Liest mehrere Zeichen aus dem Empfangsbuffer aus. | |
int8_t | puts_i (char *string) |
Versende eines Strings. | |
int8_t | put_data_i (uint8_t *data, uint8_t length) |
Versende eines beliebigen Datenblocks. |
UART (RS232) Funktionen (mit Interrupt).
Interrupt basierte UART-Funktionen.
int8_t getc_i | ( | ) |
Empfang eines Zeichens.
int8_t gets_i | ( | int8_t * | string, | |
uint8_t | length | |||
) |
Liest mehrere Zeichen aus dem Empfangsbuffer aus.
Schreibt eine bestimmte Anzahl von Zeichen, die momentan im Empfangsbuffer sind, in den angegebenen Speicherbereich. Sind weniger Zeichen im Puffer kehrt die Funktion zurück.
string | Beginn des zu beschreibenden Speicherbereich. | |
length | Anzahl der zu lesenden Zeichen oder Begrenzung des Speicherbereichs. |
int8_t init_uart_int | ( | int16_t | ubrr, | |
int8_t | sendpuffersize, | |||
int8_t | receivepuffersize | |||
) |
Initialisierung der Interrupt basierten UART-Funktionen.
Erstellen der Ein/Ausgabe Puffer und Initialisierung des UARTs Da das Hauptprogramm hier nicht auf das ende der Übertragung warten muss, eignet sich das interruptbasierte Vorgehen besser zum debuggen von Anwendungen. Allerdings entstehen eventuell Probleme mit anderen Interrupts und je nach größe des Puffers und Auslastung können Daten verloren gehen.
ubrr | gewünschte UBRR initialisierung | |
sendpuffersize | Größe des Ausgabe Puffers | |
receivepuffersize | Größe des Ausgabe Puffers |
int8_t init_uart_int_default | ( | ) |
Initialisierung der Interrupt basierten UART-Funktionen mit Standardwerten.
Der UART wird mit dem Standardwert UBBR=51 initalisiert. Das entspricht bei einer Taktfrequenz von 16MHz einer Baudrate von 19,2k Der Sendebuffer wird mit 20 Byte und der Empfangsbuffer wird mit 30Byte initialisiert.
int8_t put_data_i | ( | uint8_t * | data, | |
uint8_t | length | |||
) |
Versende eines beliebigen Datenblocks.
Schickt einen Block der Länge length über den UART. Die Funktion springt ohne warten auf das Ende der Übertragung zurück.
data | Zeiger auf den zu sendenden Datenblock. | |
length | Anzahl der aus dem Speicherbereich data zu sendenden Bytes |
int8_t putc_i | ( | int8_t | c | ) |
Schreibt ein Zeichen/Byte in den Sendebuffer.
Kehrt vor dem tatsächlichen Senden des Zeichens wieder zurück. Das tatsächliche Senden wird von einem Interrupt erledigt, sobald alle restlichen anstehenden Übertragungen erledigt sind.
c | Das zu sendende Byte/Zeichen. |
int8_t puts_i | ( | char * | string | ) |
Versende eines Strings.
Schickt einen String über den UART. Die Funktion springt ohne warten auf das Ende der Übertragung zurück.
string | Zeiger auf den zu sendenden Strings. Dieser muss nullterminiert sein, da keine Speicherüberprüfung stattfindet. Zum senden beliebiger Daten siehe put_dat_I(); |