lettura da seriale USART PIC16F877

Ciao a tutti,

dico subito che sono alle prime armi con la programmazione e ho bisogno di un aiuto. Ho realizzato un'interfaccia seriale asincrona USART scritta in C per il PIC16F877:

void putch(unsigned char byte) { /* output one byte */ while(!TXIF) /* set when register is empty */ continue; TXREG =3D byte; }

unsigned char getch() { /* retrieve one byte */ while(!RCIF) /* set when register is not empty */ continue; return RCREG; }

e sembra che tutto funzioni: collegandomi con Hyperterminal riesco a vedere a video le printf() e riesco a far leggere al PIC i caratteri che gli passo da tastiera. Il problema =E8 che in realt=E0 a me servirebbe leggere una serie di caratteri da interpretare come un intero (es: la sequenza di caratteri

123 la voglio leggere come il numero "123" da memorizzare in un byte). Se faccio una scanf() non riesco a raggiungere l'obiettivo. Come posso fare? mi chiedo inoltre, perch=E8 la printf() funziona bene?

ringrazio anticipatamente coloro che vorranno aiutarmi!!!

daniele

Reply to
daniele
Loading thread data ...

che compilatore usi? non hai a disposizione funzioni di libreria come get_int() (per recuperare un intero passato da tastiera) o get_string() (per recuperare una stringa)?

--
Davide C.
www.ingegnerando.it



questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it
Reply to
ahrfukkio

ewsland.it/newssegnala gli abusi ad snipped-for-privacy@newsland.it

il compilatore che sto utilizzando =E8 HI-TECH PICC-Lite Compiler. le funzioni di libreria get_int() e get_string() sembrano non esserci: infatti compilando un codice di esempio, ottengo il seguente errore: "Error [499] ; . undefined symbol: _get_int (usart_asincrona.obj)"

come posso fare?

Reply to
daniele

daniele ha scritto:

Se il compilatore è abbastanza standard, dovrebbe aver implementato nella libc alcune funzioni standard di conversione, prova a guardare la atoi() e compagnia.

Ciao

Reply to
Francesco Sacchi

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.