Ardutester - Arduino Component Tester (INCOMPLETO)

Testato: Sono proprio i millis o gli analogread che reclamo in nome fella massaia di Voghera dei micro.

oltre che rendere il progetto portabile laddove esiste un sistema API arduino-compatibile, vedi DUE, mega, etc..

con questo non si vuole sminuire il progetto, ma dare un opinione sulla leggibilità/portabilità/complessità del codice.

BTW devo ancora leggermi le spiegazioni del codice, appena ho un pò di tempo..

Non voglio alimentare nessun flame. Penso che sia impossibile fare l'Ardutester esclusivamente con le funzioni messe a disposizione dal Reference. Grazie soprattutto a Paolo (dove era possibile) è stato Arduinizzato il più possibile.

ps) Nella nuova release ci sarà anche una parte in assembler. :grin:

pighixxx: ps) Nella nuova release ci sarà anche una parte in assembler. :grin:

+1 :grin:

pighi, mi sa che io e te ne riparliamo verso fine anno, se non la finisci di aggiungere funzionalità e revisioni :grin:

Michele, dopo che l'avrà rivisto lui, lo vorrei rivedere anche io. E come la storia delle leggi in parlamento, rimbalzano da una camera all'altra. :grin: :grin: :grin:

PaoloP: E come la storia delle leggi in parlamento, rimbalzano da una camera all'altra. :grin:

Allora sarà pronto per il 2025, forse :D

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.

PaoloP: Il valore viene moltiplicato per il valore di riferimento, 1.1V o 5V, diviso per 1024 (dovrebbe essere 1023??), e diviso per il numero di campioni.

confermo 1024, da 0 a 1023 sono 1024 step

Dopo la scarica, viene effettuato il test per verificare il corto delle sonde e in caso positivo si passa al sefttest interno, altrimenti si procede con la funzione CheckProbes. (che vedremo dopo mangiato) smiley-mr-green

urca, che pranzo tosto, non è acora finito? ]:D ]:D

:grin:

Uomini di poca fede. Io tra poco lo rilascio (E' stato praticamente riscritto :D) come opera compiuta poi Paolo darà una controllata e/o sistemata.

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"

PaoloP: Il problema è la portabilità perché quel #define cambia da micro a micro (motivo perché ho eliminato la compatibilità con la Leonardo).

Come ti ho detto, se volete farlo utilizzabile su più schede Leonardo, posso vedere di fare qualcosa io, non è un problema. Leonardo, Uno, Mega direi no? La Due la lascerei fuori per via della sua questione dei 3V3.

Il workaround per il registro dell'ADC è già pronto, ma non è stato mai testato. A Bassano Pighi mi ha dato una Leo, vedrò se la cosa funziona, dopo essermi creato una shield "saldata". ;)

si, ma i registri letti sono gli stessi. anche se leggi 16 bit, i primi 6 (o meglio i primi 6 del registro 0x79) sono sempre a 0. L'adc rimane comunque a 10bit (mentre sebri lasciare intendere 16bit di risoluzione), è solo un modo per evitare di fare a mano la concatenzaione dei due byte. Dove sbaglio?

lesto: si, ma i registri letti sono gli stessi. anche se leggi 16 bit, i primi 6 (o meglio i primi 6 del registro 0x79) sono sempre a 0.

Esatto, è solo un "trucco" per risparmiare qualche ciclo macchina.

lesto:
si, ma i registri letti sono gli stessi. anche se leggi 16 bit, i primi 6 (o meglio i primi 6 del registro 0x79) sono sempre a 0.
L’adc rimane comunque a 10bit (mentre sebri lasciare intendere 16bit di risoluzione), è solo un modo per evitare di fare a mano la concatenzaione dei due byte.
Dove sbaglio?

Non sbagli. Difatti Paolo diceva che fa una lettura del registro a 16 bit non che fa una conversione a 16 bit.
E’ solo come dice astro per evitare di fare 2 letture consecutive del byte basso e di quello alto.

leo72: E' solo come dice astro per evitare di fare 2 letture consecutive del byte basso e di quello alto.

Oltre alle due letture poi c'è l'operazione di somma tra due byte con shift di 8 bit e relativo casting a valore intero, dovrei fare i conti per bene però direi che con la lettura diretta del valore a 16 bit, gestita in hardware, si risparmiano più di sei cicli macchina rispetto alla procedura a lettura del singolo registro e relativa unione in un valore a 16 bit fatta a software.

"E' un trucco di Fix!" :grin:

Ho fatto la prima compilazione dopo 3 giorni di coding

:grin:

Sono sulla buona strada. Solo una cinquantina di errori :grin: (Ho definito delle nuove strutture per la gestione dei componenti e devo essermi dimenticato qualcosa per strada) ma per questo Sublime Editor dovrebbe darmi una mano (cmd-P @struttura)

Questa sera porto a cena la moglie e se Bacco non me ciava dopo con calma controllo e posto. Vado perchè adesso sono più o meno così :fearful:

In pratica hai fatto l’ArduTester 2 senza aver pubblicato l’1.

No.

Per la legge del muratore. Se fai male le fondamenta la casa crolla. Prima di arrivare al tetto ho messo apposto le fondamenta. :D Comunque non ho stravolto tutto, solo qualcosina.

Questo ha anche il box :grin: :grin: --> http://www.ebay.it/itm/Transistor-Tester-Capacitor-Inductance-L-C-R-NPN-PNP-Mosfet-Resistor-Meter-/140957444342?pt=LH_DefaultDomain_0&hash=item20d1b7e8f6&_uhb=1#ht_2814wt_1189 più una schedina con connettore zif.

Disponibile anche dagli States --> http://www.ebay.com/itm/Transistor-Tester-Capacitor-ESR-Inductance-Resistor-Meter-Mosfet-NPN-PNP-/300896300919?pt=LH_DefaultDomain_0&hash=item460ed12f77