lesto:
PaoloP:
è letto il valore dell'ADC a 16 bit, a differenze dell'analogread che legge 2 byte e poi li unisce
mi spieghi questo pezzo? non capisco dove trovi i 16 bit.
L'analogRead di Arduino legge indipendentemente i due registri a 8bit dell'ADC, il ADCH e il ADCL.
I due registri sono contigui.
Nell'Ardutester la lettura dei registri è fatta tramite ADCW che è definito come
#define ADCW _SFR_MEM16(0x78)
al posto di
#define ADCL _SFR_MEM8(0x78)
#define ADCH _SFR_MEM8(0x79)
quindi legge con l'indirizzo del primo byte entrambi e li memorizza in 16bit. (perchè i registri sono contigui).
Il problema è la portabilità perché quel #define cambia da micro a micro (motivo perché ho eliminato la compatibilità con la Leonardo).
Pag 256 e 257 del datasheet linkato prima.
Che ti devo dire... dopo pranzo mi ha assalito la bimba che non mi ha dato tregua.
Stanotte dovrei avere un po' di tempo libero.
p.s. Le definizioni le trovate nel file "avr/iom328p.h" che fa parte di "avr/io.h"