A20737A Anaren atmosphere errore in una funzione

di il
4 risposte

A20737A Anaren atmosphere errore in una funzione

Ciao a tutti!
questo è il mio primo post spero di essere nella sezione corretta..
Sono dietro a un progettino nel quale devo leggere il valore di un convertitore adc a 24bit ( un hx711) e mandare a schermata sul cellulare la lettura con un modulo a20737a il tutto programmato con il suo ide che é a interfaccia web(https://atmosphere.anaren.co)
Il problema salta fuori quando sul cellulare al posto di apparire le letture appaiono ogni tanto le letture o errori di lettura e spessissimo '0' e non riesco a spiegarmi il motivo vi passo porzione del codice:

int Function3() {
while(AIR_GPIO_Read(24));
i = 0;

for(i = 0; i < 24; i++){
AIR_GPIO_Write(25, true);
count <<= 1;
AIR_GPIO_Write(25, false);
if(AIR_GPIO_Read(24)){
count++;
}
}
AIR_GPIO_Write(25, true);
count = count ^ 0x800000;
AIR_GPIO_Write(25, false);
return count;
}
la funzione viene richiamata ma non dal codice ma da un task avviato dopo x mS dall'avvio del programma e ogni y mS in uscita dovrebbe riportarmi la lettura dell'hx711 che quando ha un dato pronto manda a livello basso l'uscita (lettura pin 24) fatto partire il clock a ogni ciclo (pin25) butta fuori un bit che viene salvato nella variabile count dopo convertita a decimale e tramite i blocchi mandato a un label sull'app del cellulare..
ho provato a mettere dei delay per rallentare il clock a cambiare tante cose ma nulla è cambiato..
spero nel vostro aiuto!

4 Risposte

  • Re: A20737A Anaren atmosphere errore in una funzione

    Ho letto velocemente il datasheet del convertitore e mi pare che manchi il reset del clock all'inizio, oltre all'azzeramento del count (azzeri due volte la variabile i, forse non te ne sei accorto). La funzione dovrebbe iniziare con
    
    int Function3() {
       AIR_GPIO_Write(25, false);
       while(AIR_GPIO_Read(24));
       count = 0;
    
  • Re: A20737A Anaren atmosphere errore in una funzione

    Prova gia fatta..
    Passo user e pass Prelo96 qwertyui https://atmosphere.anaren.com
    il codice è pastrocchiato perchè le ho provate tutte diciamo
    magari cosi vedendo anche la parte a blocchi diventa piu chiaro il tutto
  • Re: A20737A Anaren atmosphere errore in una funzione

    E' difficile dire cosa non vada. Secondo me, sicuramente quella parte che ti ho indicato era evidente.

    Poi bisogna capire se l'hardware che legge dall'ADC rispetta i tempi corretti (durata clock, soprattutto), come da specifiche del datasheet.
    Se il clock va high per troppo tempo, il circuito entra in power-down e quindi la lettura viene falsata.

    Ma noi dell'hardware non sappiamo nulla e non si può fare nessun tipo di debugging o controllo con analizzatori di stato.

    Per cui non è possibile dirti di più ...

    P.S. Utenza e pwd che hai fornito non servono a nulla, non per trovare il problema ...
  • Re: A20737A Anaren atmosphere errore in una funzione

    Purtroppo non dispongo di un analizzatore di stato.. in ogni caso lo stesso codice (senza il reset poichè lo effettua ogni volta che finisce il codice rimanendo a livello basso e in attesa di livello basso da pin dt nel while ) funziona correttamente su arduino ovviamente con le dovute variazioni..
    ho provato a settare dei delay fra la scrittura true e la lettura ma nulla sempre sto errore..
    ho postato user e pass per poter accedere all'ambiente di sviluppo essendo in parte in codice e in parte a blocchi e anche un po particolare oltre a essere pressochè sconosciuto a quanto pare..
    Che altre informazioni servirebbero?
Devi accedere o registrarti per scrivere nel forum
4 risposte