Citazione:
Originalmente inviato da faustog_2 ...I registri ADRESH e ADRESL si caricano dello stesso valore.. non esiste che uno mantiene i primi 8 bit e l'altro i due rimanenti.. ripeto entrambi si caricano dello stesso valore Sicuro che non sia tu a leggere due volte il valore dello stesso registro?
...Ne viene che il 16F876 nel convertire un segnale analogico gestisce max 8 bit... e non 10 come scritto. Mi sembra molto strano!! Il 876 in particolare non l'ho mai utilizzato, ma ho utilizzato il 870,873,877, e sono tutti a dieci bit!!Quindi è molto più probabile un errore da parte tua
Venerdi mi arrivano i 18F2320 credo che sarà un'altra musica. Programmare i pic della famiglia 18 in Assembler? Non fare pazzie!! Impara ad utilizzare il C. |
Per quanto riguarda il consiglio di passare al C, io lo approvo pienamente!!
Pensa per esempio quanto è facile leggere un ingresso analogico ( An0 ) ( qualunque sia la lunghezza del suo risultato )per esempio 10bit, sommargli una cifra ( 512 ) e mandarlo in output sul portB ed i restanti bit più significativi sul portA:
PORTB= Adc_Read(0)+512;
PORTA= Adc_Read(0)>>8;
Oppure fare un semplice ritardo espresso in millisecondi (123 per esempio):
delay_ms(123);
Fine!! Senza tutti quei mov, loop, ecc ecc.....