- Messaggi: 243
- Ringraziamenti ricevuti 0
GESTIONE PORTA ANALOGICA SU PIC16F690
4 Anni 8 Mesi fa #1
da FABRIZIO
GESTIONE PORTA ANALOGICA SU PIC16F690 è stato creato da FABRIZIO
Buongiorno a tutti, ho costruito un termometro che comprende un sensore LM35, 3 display a led 7 segmenti e un pic16f690 che gestisce il tutto. In poche parole non riesco ad effettuare la conversione della tensione data dal sensore e applicata sul pin 18, che corrisponde alla porta RA1 che ho settato come AN1. Scrivo il settaggio dell'analogica tenendo conto che l'oscillatore del pic è 8MHz, quello interno:
while (1)
{
Routine_Ritardo(2); //Assestamento
ADCON0 = 0b10000101; //Registro settato con convertitore spento (ADON)
ADCON1 = 0b00100000; //Oscillatore per convertitore FOSC/32
Routine_Ritardo(1); //Tempo di ricarica condensatore per la conversione
ADCON0bits.GO_DONE = 1; //Avvio conversione
while (ADCON0bits.GO_DONE == 1)//Quando ha finito la conversione esce dal ciclo
{
conversionel = ANSEL; //Trasferisce il risultato della conversione
conversioneh = ANSELH;
}
ADCON0bits.ADON = 0; //Spengo il convertitore
if (conversionel != 0) //Questa parte di software è per verificare se vi è stata una conversione, mi da sempre 0
{
K3 = 1;
PORTC = 0b01101101;//passval;
Routine_Ritardo(6);
passval = 0;
PORTB = 0x00;
}
C'è qualcuno che mi può dare una dritta?
while (1)
{
Routine_Ritardo(2); //Assestamento
ADCON0 = 0b10000101; //Registro settato con convertitore spento (ADON)
ADCON1 = 0b00100000; //Oscillatore per convertitore FOSC/32
Routine_Ritardo(1); //Tempo di ricarica condensatore per la conversione
ADCON0bits.GO_DONE = 1; //Avvio conversione
while (ADCON0bits.GO_DONE == 1)//Quando ha finito la conversione esce dal ciclo
{
conversionel = ANSEL; //Trasferisce il risultato della conversione
conversioneh = ANSELH;
}
ADCON0bits.ADON = 0; //Spengo il convertitore
if (conversionel != 0) //Questa parte di software è per verificare se vi è stata una conversione, mi da sempre 0
{
K3 = 1;
PORTC = 0b01101101;//passval;
Routine_Ritardo(6);
passval = 0;
PORTB = 0x00;
}
C'è qualcuno che mi può dare una dritta?
Si prega Accedi o Crea un account a partecipare alla conversazione.
- FABRIZIO
- Autore della discussione
- Elite Member
Riduci
Di più
4 Anni 8 Mesi fa #2
da Cosimix
Risposta da Cosimix al topic GESTIONE PORTA ANALOGICA SU PIC16F690
Salve!
Per leggere il risultato della conversione devi far uso dei registri ADRESH e ADRESL.
I registri ANSEL e ANSELH servono per impostare i pin contrassegnati con AN, a seconda di quello che devi farci con quei pin.
Come li hai settati ANSEL e ANSELH?
Saluti,
Cosimo
Per leggere il risultato della conversione devi far uso dei registri ADRESH e ADRESL.
I registri ANSEL e ANSELH servono per impostare i pin contrassegnati con AN, a seconda di quello che devi farci con quei pin.
Come li hai settati ANSEL e ANSELH?
Saluti,
Cosimo
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Cosimix
- Elite Member
Riduci
Di più
- Messaggi: 198
- Ringraziamenti ricevuti 26
4 Anni 8 Mesi fa #3
da FABRIZIO
Risposta da FABRIZIO al topic GESTIONE PORTA ANALOGICA SU PIC16F690
Mah veramente io ho capito che i 2 registri ANSEL e ANSELH servono ad immagazzinare il valore convertito che si dovrà trasferire su 2 variabili; l'unico settaggio che ho fatto a questi due è che il valore viene immagazzinato da destra verso sinistra. Mi sfugge qualcosa? Nel datasheet non vedo nulla d'altro
Si prega Accedi o Crea un account a partecipare alla conversazione.
- FABRIZIO
- Autore della discussione
- Elite Member
Riduci
Di più
- Messaggi: 243
- Ringraziamenti ricevuti 0
4 Anni 8 Mesi fa #4
da Cosimix
Risposta da Cosimix al topic GESTIONE PORTA ANALOGICA SU PIC16F690
Scusami se insisto, non so dove tu l'abbia letto. Probabilmente in qualche tutorial è riportato un errore.
Ammetto che spesso ci si confonde tra i registri, soprattutto quando si passa da un micro all'altro.
Quando hai dei dubbi, consulta XC8 Step by Step o comunque i codici esempio che trovi su Laurtec .
Cosulta sempre il datasheet del componente che utilizzi. Dai un'occhiata a pag. 58:
ww1.microchip.com/downloads/en/DeviceDoc/40001262F.pdf
Saluti,
Cosimo
Ammetto che spesso ci si confonde tra i registri, soprattutto quando si passa da un micro all'altro.
Quando hai dei dubbi, consulta XC8 Step by Step o comunque i codici esempio che trovi su Laurtec .
Cosulta sempre il datasheet del componente che utilizzi. Dai un'occhiata a pag. 58:
ww1.microchip.com/downloads/en/DeviceDoc/40001262F.pdf
Saluti,
Cosimo
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Cosimix
- Elite Member
Riduci
Di più
- Messaggi: 198
- Ringraziamenti ricevuti 26
4 Anni 8 Mesi fa #5
da FABRIZIO
Risposta da FABRIZIO al topic GESTIONE PORTA ANALOGICA SU PIC16F690
Ah scusami tu per la svista, ma il mio datasheet non è uguale nella disposizione delle pagine (nonostante l'abbia scaricato nel sito Microchip..forse è vecchio). Ho tralasciato il settaggio che dici tu. Non ho letto la parte del settaggio porte I/O.
Adesso l'ho fatto funzionare in maniera rudimentale. Ho un trimmer che fa da sensore perchè non mi è ancora arrivato; adesso posso iniziare a fare la procedura di scrittura dei display. Grazie mille
Adesso l'ho fatto funzionare in maniera rudimentale. Ho un trimmer che fa da sensore perchè non mi è ancora arrivato; adesso posso iniziare a fare la procedura di scrittura dei display. Grazie mille
Si prega Accedi o Crea un account a partecipare alla conversazione.
- FABRIZIO
- Autore della discussione
- Elite Member
Riduci
Di più
- Messaggi: 243
- Ringraziamenti ricevuti 0
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.