multiple UARTs in ATMega161

J

jetal

Guest
Sono contemplando su come scrivere una applicazione sperimentale in C che utilizza sia hardware UARTs nel Mega161 AVR chip.Sarò utilizzando ICC AVR per lo sviluppo.

Dal file di aiuto ICCAVR / manuale, vedo che posso usare putchar () e getchar () per inviare e ricevere caratteri.Tuttavia, tali funzioni non definiscono il carattere UART che è stato inviato o ricevuto da.

A me sembra che devo scrivere il mio modificato putchar0 () e putchar1 () per scrivere le varie UARTs e simili per la ricezione.Vedo che non è un lavoro difficile farlo, ma questo è il metodo più facile o
c'è qualcosa di meglio?

Se qualcuno ha fatto qualcosa di simile, sarebbe bello vedere un frammento di codice.

 
Sì è vero, ma è l'esperienza non è possibile utilizzare come standard formattatore printf (), perché ricorda la funzione di livello inferiore come putchar ()
Stark

 
Fare capire che le funzioni di livello superiore come printf () chiamata livello inferiore come funzioni putchar () e se fossi uscita di una stringa con mette () sarebbe anche invocare putchar ().

Ho fatto personalizzato putchar () per attuare un interrupt putchar () in 8051.Ciò non sostituisce la libreria putchar () - ho dato la mia funzione di un nome diverso.

Il vero punto della mia ricerca: è questa la più elegante o efficiente o modo migliore?Sono un "crudo" programmatore e mi piacerebbe sapere come qualcuno con più esperienza di affrontare il problema.

 
Vorrei generare scrivere e leggere le funzioni che accettano i parametri per il numero di porta e di inviare i dati (es. wrSIO (porto,
la lunghezza, char *)).Buffer indipendenti per ogni UART.Separa interrupt routine di basso livello per l'I / O.Non utilizzare printf () per formato,
usa sprintf ().

 

Welcome to EDABoard.com

Sponsor

Back
Top