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
en:software:homelab:library:usart [2010/03/25 12:51] mikk.leinien:software:homelab:library:usart [2020/07/20 12:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Serial interface ======+====== Serial Interface ======
  
 This library provides AVR asynchronous serial interface usage functions. This library provides AVR asynchronous serial interface usage functions.
  
-===== Data types =====+===== Data Types =====
  
-  * **//usart//** \\ Data type to hold USART inteface control, status and data register addresses. //usart// typed variables should be initialized at the beginning of the program code. For initializations, there is a macro-functions //USART// which only parameter is the index of interface (0 or 1). +  * **//usart//** \\ Data type to hold USART inteface control, status and data register addresses. //usart// typed variables should be initialized at the beginning of the program code. For initializations, there is a macro-functions //USART//, whose only parameter is the index of interface (0 or 1). 
-  * **//adc_usart_databits//** \\ Data bits count enumeration data type. Options:+ 
 +  * **//usart_databits//** \\ Data bits count enumeration data type. Options:
     * //USART_DATABITS_5// - 5 data bits.     * //USART_DATABITS_5// - 5 data bits.
     * //USART_DATABITS_6// - 6 data bits.     * //USART_DATABITS_6// - 6 data bits.
Line 12: Line 13:
     * //USART_DATABITS_8// - 8 data bits.     * //USART_DATABITS_8// - 8 data bits.
     * //USART_DATABITS_9// - 9 data bits.     * //USART_DATABITS_9// - 9 data bits.
 +
   * **//usart_stopbits//** \\ Stop bits count enumeration data type. Options:   * **//usart_stopbits//** \\ Stop bits count enumeration data type. Options:
     * //USART_STOPBITS_ONE// - One stop bit.     * //USART_STOPBITS_ONE// - One stop bit.
     * //USART_STOPBITS_TWO// - Two stop bits.     * //USART_STOPBITS_TWO// - Two stop bits.
-  * **//usart_parity//** \\ Paarsuskontrolli valiku tüüp. Väärtuste variandid: 
-    * //USART_PARITY_NONE// - Paarsuskontrolli ja -bitti ei kasutata. 
-    * //USART_PARITY_EVEN// - Ühtede paarisarvulisuse kontroll. 
-    * //USART_PARITY_ODD// - Ühtede paarituarvulisuse kontroll. 
  
-===== Funktsioonid =====+  * **//usart_parity//** \\ Parity mode enumeration data type. Options: 
 +    * //USART_PARITY_NONE// - Disabled. 
 +    * //USART_PARITY_EVEN// - Even parity. 
 +    * //USART_PARITY_ODD// - Odd parity. 
 + 
 +===== Functions =====
  
   * **//USART_BAUDRATE_ASYNC(baud)//** \\   * **//USART_BAUDRATE_ASYNC(baud)//** \\
-    Makrofunktsiooni USART mooduli asünkroonse režiimi boodikiiruse registri väärtuse arvutamiseksParameetrid+    Macro function to calculate USART baud rate register value in asynchronous modeParameters
-    * //baud// - Boodikiirus+    * //baud// - Desired baud rate
-    * Tagastab boodikiiruse registri väärtuse.+    * Returns baud rate register value.
  
   * **//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)//** \\
-    Jadaliidese asünkroonseks seadistamineParameetrid+    Initializes asynchronous USARTParameters
-    * //port// - USART liidese muutuja+    * //port// - USART interface variable
-    * //data_bits//Andmebittide arv+    * //data_bits//Data bits
-    * //stop_bits//Stoppbittide arv+    * //stop_bits//Stop bits
-    * //parity// - Paarsuse tüüp+    * //parity// - Parity mode
-    * //baudrate//Boodi kiirus, mis on arvutatud //USART_BAUDRATE_ASYNC// makro funktsiooniga.+    * //baudrate//Baud rate register value (can be calculated with //USART_BAUDRATE_ASYNC// macro function).
  
   * **//void usart_send_char(usart port, char symbol)//** \\   * **//void usart_send_char(usart port, char symbol)//** \\
-    Blokeeruv sümboli saatmise funktsioonFunktsioon ootab, kuni saatmise puhver tühjeneb ja kirjutab sinna saatmiseks uue sümboliParameetrid+    Blocking character transmissionFunctions wait until transmit buffer empties before writing a character to the bufferParameters
-    * //port// - USART liidese muutuja+    * //port// - USART interface variable
-    * //symbol// - Saadetav sümbol.+    * //symbol// - Character to be sent.
  
   * **//void usart_send_string(usart port, char *text)//** \\   * **//void usart_send_string(usart port, char *text)//** \\
-    Blokeeruv teksti saatmise funktsioonParameetrid+    Blocking string transmissionParameters
-    * //port// - USART liidese muutuja+    * //port// - USART interface variable
-    * //text// - Viit tekstileTekst peab lõppema binaarse 0 sümboliga.+    * //text// - Pointer to strin (char array)String has to end with null character.
  
   * **//bool usart_has_data(usart port)//** \\   * **//bool usart_has_data(usart port)//** \\
-    Sisendpuhvris andmete olemasolu kontrollParameetrid+    Checks for data in receive bufferParameters
-    * //port// - USART liidese muutuja+    * //port// - USART interface variable
-    * Tagastab //true//, kui sisendpuhvris on sümbol ja //false// kui mitte.+    * Returns //true// when there is a character in receive bufferand //false// when not.
  
   * **//char usart_read_char(usart port)//** \\   * **//char usart_read_char(usart port)//** \\
-    Sisendpuhvrist sümboli lugemineEnne lugemist peab veenduma, et puhvris on sümbolParameetrid+    Reads a character from receive bufferBefore reading user must check if there actually is  a received characterParameters:  
-    * //port// - USART liidese muutuja+    * //port// - USART interface variable
-    * Tagastab sümboli.+    * Returns character.
  
   * **//bool usart_try_read_char(usart port, char *symbol)//** \\   * **//bool usart_try_read_char(usart port, char *symbol)//** \\
-    Sisendpuhvri sümboli olemasolu kontroll ja selle lugemise ühisfunktsioonParameetrid+    Reads a character from receive buffer if there is anyParameters
-    * //port// - USART liidese muutuja+    * //port// - USART interface variable
-    * //symbol// - Viit sümbolileKui sisendpuhvris on sümbolsiis see kirjutatakse siia+    * //symbol// - Pointer to character variableIf there is a character in receive bufferit is written to the pointed variable
-    * Tagastab //true//, kui sisendpuhvris oli sümbol ja //false// kui mitte.+    * Returns //true// when there was a character in receive bufferand //false// when not.
  
-===== Näide =====+===== Example =====
  
-Jadaliidese seadmistamine töötab asünkroonselt andmebitiühe stoppbiti ja ilma paarsuse kontrollita boodikiirusel 9600. Programm saadab teksti, ootabkuni saabub sümbol ja loeb selle siis välja.+USART interface is configured to use data bits, one stop bit, 9600 bps baud rate and no parity modeProgram sends a stringwaits until some character is received and then reads it out.
  
 <code c> <code c>
 #include <homelab/usart.h> #include <homelab/usart.h>
  
-// port on jadaliides 0+// Use USART interface 0.
 usart port = USART(0); usart port = USART(0);
  
Line 75: Line 78:
  char c;  char c;
  
- // Jadaliidese seadistamine+ // Interface initialization.
  usart_init_async(port,  usart_init_async(port,
  USART_DATABITS_8,  USART_DATABITS_8,
Line 82: Line 85:
  USART_BAUDRATE_ASYNC(9600));  USART_BAUDRATE_ASYNC(9600));
  
- // Teksti saatmine + // String sending. 
- usart_send_string(port, "Tere\n");+ usart_send_string(port, "Hello\n");
  
- // Sissetuleva sümboli ootamine+ // Waiting for incoming data.
  while (!usart_has_data(port)) {}  while (!usart_has_data(port)) {}
  
- // Sümboli lugemine+ // Read out the received character.
  c = usart_read_char(port);  c = usart_read_char(port);
 } }
 </code> </code>
  
en/software/homelab/library/usart.1269514304.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