Jadaliides

Tegu on AVR universaalse jadaliidese kasutamise teegiga. Võimaldab asünkroonset andmete kirjutamist ja lugemist.

Andmetüübid

  • usart
    USART liidese registrite hoidmise andmetüüp. usart-tüüpi muutuja on konstantne ja see tuleb väärtustada kohe programmi alguses. Väärtustamise lihtsustamiseks on makrofunktsioon USART, mille parameetriks on liidese indeks (0 või 1).
  • usart_databits
    Andmebittide arvu valiku tüüp. Väärtuste variandid:
    • USART_DATABITS_5 - Andmebitte 5.
    • USART_DATABITS_6 - Andmebitte 6.
    • USART_DATABITS_7 - Andmebitte 7.
    • USART_DATABITS_8 - Andmebitte 8.
    • USART_DATABITS_9 - Andmebitte 9.
  • usart_stopbits
    Stoppbittide arvu valiku tüüp. Väärtuste variandid:
    • USART_STOPBITS_ONE - Üks stoppbitt.
    • USART_STOPBITS_TWO - Kaks stoppbitti.
  • 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_BAUDRATE_ASYNC(baud)

Makrofunktsiooni USART mooduli asünkroonse režiimi boodikiiruse registri väärtuse arvutamiseks. Parameetrid:

  • baud - Boodikiirus.
  • Tagastab boodikiiruse registri väärtuse.
  • void usart_init_async(usart port, usart_databits data_bits, usart_stopbits stop_bits, usart_parity parity, usart_baudrate baudrate)

Jadaliidese asünkroonseks seadistamine. Parameetrid:

  • port - USART liidese muutuja.
  • data_bits - Andmebittide arv.
  • stop_bits - Stoppbittide arv.
  • parity - Paarsuse tüüp.
  • baudrate - Boodi kiirus, mis on arvutatud USART_BAUDRATE_ASYNC makro funktsiooniga.

 

  • void usart_send_char(usart port, char symbol)

Blokeeruv sümboli saatmise funktsioon. Funktsioon ootab, kuni saatmise puhver tühjeneb ja kirjutab sinna saatmiseks uue sümboli. Parameetrid:

  • port - USART liidese muutuja.
  • symbol - Saadetav sümbol.
  • void usart_send_string(usart port, char *text)

Blokeeruv teksti saatmise funktsioon. Parameetrid:

  • port - USART liidese muutuja.
  • text - Viit tekstile. Tekst peab lõppema binaarse 0 sümboliga.
  • bool usart_has_data(usart port)

Sisendpuhvris andmete olemasolu kontroll. Parameetrid:

  • port - USART liidese muutuja.
  • Tagastab true, kui sisendpuhvris on sümbol ja false kui mitte.
  • char usart_read_char(usart port)

Sisendpuhvrist sümboli lugemine. Enne lugemist peab veenduma, et puhvris on sümbol. Parameetrid:

  • port - USART liidese muutuja.
  • Tagastab sümboli.
  • bool usart_try_read_char(usart port, char *symbol)

Sisendpuhvri sümboli olemasolu kontroll ja selle lugemise ühisfunktsioon. Parameetrid:

  • port - USART liidese muutuja.
  • symbol - Viit sümbolile. Kui sisendpuhvris on sümbol, siis see kirjutatakse siia.
  • Tagastab true, kui sisendpuhvris oli sümbol ja false kui mitte.

Näide

Jadaliidese seadmistamine töötab asünkroonselt 8 andmebiti, ühe stoppbiti ja ilma paarsuse kontrollita boodikiirusel 9600. Programm saadab teksti ja loeb sissetuleva sümboli.

#include <homelab/usart.h>
 
usart port = USART(0);
 
int main(void)
{
	char c;
 
	// Jadaliidese seadistamine
	usart_init_async(port, USART_DATABITS_8, USART_STOPBITS_ONE,
		USART_PARITY_NONE, USART_BAUDRATE_ASYNC(9600));
 
	// Teksti saatmine
	usart_send_string(port, "Tere!\r\n");
 
	// Sissetuleva sümboli ootamine
	while (!usart_has_data(port)) {}
 
	// Sümboli lugemine
	c = usart_read_char(port);
}
et/software/homelab/library/usart.txt · Last modified: 2020/07/20 09:00 by 127.0.0.1
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