Mnogostruk UARTs u ATMega161

J

jetal

Guest
Ja sam razmišljaju o tome kako pisati eksperimentalni program u C-da koristi hardware UARTs u Mega161 AVR čip.JA htijenje biti koristeći AVR ICC-a za razvoj.

Od ICCAVR help file / priručnik, Ja mogu vidjeti da li mogu koristiti putchar () i getchar () za slanje i primanje znakova.Međutim ove funkcije ne definiraju koja UART lik je poslana ili primljena od.

Za mene to izgleda kao da sam napisati svoj put putchar0 () i putchar1 () funkcije mogu pisati u različitim UARTs i sl. za primanje.Ja mogu vidjeti taj njegov posao nije težak događaj ovaj, ali je ovaj najjednostavniji način ili postoji nešto bolje?

Ako bilo tko je učinio nešto slično bilo bi lijepo vidjeti isječak kôda.

 
Da to je istina, ali ćete doživjeti ne možete koristiti standardne formatter poput printf (), jer podsjeća na nižoj razini funkcije kao što je putchar ()
Stark

 
Ja razumijem da je viša razina funkcije poput printf () poziv na nižoj razini funkcije poput putchar () i ako JA preterit od be to output string sa stavlja () ona će isto tako prizvati putchar ().

Učinio sam običaj putchar () provesti prekinuti driven putchar () in 8051.To nije zamijeniti biblioteka putchar () - funkcija JA je dao moj drugi naziv.

Pravi točka moje pitanje: je ovo većini elegantan ili efikasan i najbolji način?Ja sam "sirovo", programer i Htjela bih znati kako se netko sa više iskustva će pristup problemu.

 
Ja bih generirati pisati i čitati funkcije koje prihvatiti parametre za broj porta i podatke za slanje (ie. wrSIO (luku, duljina, char *)).Nezavisni odbojnika za svaki UART.Odvojite prekinuti driven low-level rutine za I / O.Ne koristite printf () za oblikovanje, korištenje sprintf ().

 

Welcome to EDABoard.com

Sponsor

Back
Top