lettura da seriale USART PIC16F877

Feb 12, 2008 3 Replies

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


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

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?

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required