Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
de:software:homelab:library:usart [2010/10/28 01:01] raivo.sellde:software:homelab:library:usart [2020/07/20 12:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Serielles Interface ====== ====== Serielles Interface ======
  
-Diese Bibliothek liefert Funktionen für das AVR asynchrone serielle Interface+Diese Bibliothek bietet die Funktionen für das AVR asynchrone serielle Interface
  
 ===== Datentypen ===== ===== Datentypen =====
Line 7: Line 7:
   * **//usart//** \\ Datentyp für USART Interfacekontroll-, Status- und Datenregisteradressen. //usart// Variablen sollten zu Beginn des Programms initialisiert werden. Für die Initialisierung gibt es eine Macrofunktion //USART// dessen einziger Parameter für den Index des Interface ist. (0 oder 1).   * **//usart//** \\ Datentyp für USART Interfacekontroll-, Status- und Datenregisteradressen. //usart// Variablen sollten zu Beginn des Programms initialisiert werden. Für die Initialisierung gibt es eine Macrofunktion //USART// dessen einziger Parameter für den Index des Interface ist. (0 oder 1).
  
-  * **//usart_databits//** \\ Data bits count enumeration data typeOptions+  * **//usart_databits//** \\ Zählen der Datenbits, AufzählungsdatentypMöglichkeiten
-    * //USART_DATABITS_5// - 5 data bits+    * //USART_DATABITS_5// - 5 Datenbits
-    * //USART_DATABITS_6// - 6 data bits+    * //USART_DATABITS_6// - 6 Datenbits
-    * //USART_DATABITS_7// - 7 data bits+    * //USART_DATABITS_7// - 7 Datenbits
-    * //USART_DATABITS_8// - 8 data bits+    * //USART_DATABITS_8// - 8 Datenbits
-    * //USART_DATABITS_9// - 9 data bits.+    * //USART_DATABITS_9// - 9 Datenbits.
  
-  * **//usart_stopbits//** \\ Stop bits count enumeration data typeOptions+  * **//usart_stopbits//** \\ Zählen der Stop-Bits, AufzählungsdatentypMöglichkeiten
-    * //USART_STOPBITS_ONE//One stop bit+    * //USART_STOPBITS_ONE//Ein Stop-Bit
-    * //USART_STOPBITS_TWO//Two stop bits.+    * //USART_STOPBITS_TWO//Zwei Stop-Bit.
  
-  * **//usart_parity//** \\ Parity mode enumeration data typeOptions+  * **//usart_parity//** \\ Paritätsmodus, AufzählungsdatentypMöglichkeiten
-    * //USART_PARITY_NONE//Disabled+    * //USART_PARITY_NONE//Ausgeschaltet
-    * //USART_PARITY_EVEN//Even parity+    * //USART_PARITY_EVEN//Gerade Parität
-    * //USART_PARITY_ODD//Odd parity.+    * //USART_PARITY_ODD//Ungerade Parität.
  
 ===== Funktionen ===== ===== Funktionen =====
  
   * **//USART_BAUDRATE_ASYNC(baud)//** \\   * **//USART_BAUDRATE_ASYNC(baud)//** \\
-    Macrofunktion um den USART Baudratenregisterwert im asynchronen Modus zu berechnen. Parameter: +    Makrofunktion um den USART Baudratenregisterwert im asynchronen Modus zu berechnen. Parameter: 
     * //baud// - Gewünschte Baudrate     * //baud// - Gewünschte Baudrate
     * Gibt Baudratenregisterwert wieder.     * Gibt Baudratenregisterwert wieder.
Line 32: Line 32:
   * **//void usart_init_async(usart port, usart_databits data_bits, usart_stopbits stop_bits, usart_parity parity, usart_baudrate baudrate)//** \\   * **//void usart_init_async(usart port, usart_databits data_bits, usart_stopbits stop_bits, usart_parity parity, usart_baudrate baudrate)//** \\
     Initialisiert asynchrones USART. Parameter:     Initialisiert asynchrones USART. Parameter:
-    * //port// - USART interface variable+    * //port// - USART Schnittstellenvariable
-    * //data_bits//Data bits+    * //data_bits//Datenbits
-    * //stop_bits// - Stop bits+    * //stop_bits// - Stop-Bits
-    * //parity// - Parity mode+    * //parity// - Paritätsmodus
-    * //baudrate//Baud rate register value (can be calculated with //USART_BAUDRATE_ASYNC// macro function).+    * //baudrate//Baudratenregisterwert (kann mit der Makrofunktion //USART_BAUDRATE_ASYNC// errechnet werden).
  
   * **//void usart_send_char(usart port, char symbol)//** \\   * **//void usart_send_char(usart port, char symbol)//** \\
-    Blocking character transmissionFunctions wait until transmit buffer empties before writing a character to the bufferParameters+    Blockiert die Übertragung von ZeichenDie Funktionen warten solange bis der Ausgabespeicher leer ist, bevor ein Zeichen in den Speicher geschrieben wirdParameter:  
-    * //port// - USART interface variable+    * //port// - USART Schnittstellenvariable
-    * //symbol// - Character to be sent.+    * //symbol// - zu sendendes Zeichen.
  
   * **//void usart_send_string(usart port, char *text)//** \\   * **//void usart_send_string(usart port, char *text)//** \\
-    Blocking string transmissionParameters+    Blockierende String-ÜbertragungParameter
-    * //port// - USART interface variable+    * //port// - USART Schnittstellenvariable
-    * //text// - Pointer to strin (char array). String has to end with null character.+    * //text// - Zeiger auf einen String(char array). Der String muss mit einer Null enden.
  
   * **//bool usart_has_data(usart port)//** \\   * **//bool usart_has_data(usart port)//** \\
-    Checks for data in receive bufferParameters+    Überprüft Empfangsspeicher auf DatenParameter
-    * //port// - USART interface variable+    * //port// - USART Schnittstellenvariable
-    * Returns //true// when there is a character in receive buffer, and //false// when not.+    * Gibt //true// zurück wenn Zeichen im Empfangsspeicher und //false// wenn nicht.
  
   * **//char usart_read_char(usart port)//** \\   * **//char usart_read_char(usart port)//** \\
-    Reads a character from receive bufferBefore reading user must check if there actually is  a received characterParameters:  +    Liest ein Zeichen aus dem EmpfangsspeicherZuvor muss der Nuter überprüfen ob tatsächlich ein Zeichen empfangen wurdeParameter
-    * //port// - USART interface variable+    * //port// - USART Schnittstellenvariable
-    * Returns character.+    * Gibt Zeichen aus.
  
   * **//bool usart_try_read_char(usart port, char *symbol)//** \\   * **//bool usart_try_read_char(usart port, char *symbol)//** \\
-    Reads a character from receive buffer if there is anyParameters+    Liest ein Zeichen aus dem Empfangsspeicher, falls eins vorhanden istParameter
-    * //port// - USART interface variable+    * //port// - USART Interfacevariable
-    * //symbol// - Pointer to character variableIf there is a character in receive bufferit is written to the pointed variable+    * //symbol// - Verweis auf die Variable des ZeichensWenn ein Zeichen im Empfangsspeicher vorhanden istwird es der betreffenden Variable zugeschrieben
-    * Returns //true// when there was a character in receive bufferand //false// when not.+    * Gibt //true// auswenn ein Zeichen im Empfangsspeicher vorhanden ist und //false// wenn nicht.
  
 ===== Beispiel ===== ===== Beispiel =====
  
-USART Interface ist konfiguriert um 8 Data Bits, ein Stop Bit, 9600 bps Baudrate und kein Paritätsmodus zu nutzen. Das Programm sendet einen String, wartet bis die Buchstaben empfangen wurden und ließt sie dann aus.+Die USART Schnittstelle ist konfiguriert um 8 Datenbits, ein Stop-Bit, 9600 bps Baudrate und keinen Paritätsmodus zu nutzen. Das Programm sendet einen String, wartet bis die Zeichen empfangen wurden und ließt sie dann aus.
  
 <code c> <code c>
 #include <homelab/usart.h> #include <homelab/usart.h>
  
-// Use USART interface 0.+// Nutze USART Schnittstelle 0.
 usart port = USART(0); usart port = USART(0);
  
Line 78: Line 78:
  char c;  char c;
  
- // Interface initialization.+ // Initialisierung der Schnittstelle.
  usart_init_async(port,  usart_init_async(port,
  USART_DATABITS_8,  USART_DATABITS_8,
Line 85: Line 85:
  USART_BAUDRATE_ASYNC(9600));  USART_BAUDRATE_ASYNC(9600));
  
- // String sending.+ // Senden des String.
  usart_send_string(port, "Hello\n");  usart_send_string(port, "Hello\n");
  
- // Waiting for incoming data.+ // Auf ankommende Daten warten.
  while (!usart_has_data(port)) {}  while (!usart_has_data(port)) {}
  
- // Read out the received character.+ // Empfangenes Zeichen auslesen.
  c = usart_read_char(port);  c = usart_read_char(port);
 } }
 </code> </code>
  
de/software/homelab/library/usart.1288216877.txt.gz · Last modified: (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0