audley
15-11-2012, 00:32
Ciao a tutti.
Voglio utilizzare il sensore di pressione BMP85 su duinomite (MMBasic), prendendo spunto dai tanti esempi che si trovano in rete per Arduino (C).
Quando col Basic vado a leggere le word di 16 bit memorizzate nel sensore, mi tornano indietro solo dei numeri decimali positivi, valori sbagliati.
Con Arduino, infatti, tornano indietro alcuni di questi numeri decimali positivi, altri negativi (valori corretti). Parlo dei dati di calibrazione.
Il codice che ho scritto, per leggere la prima word:
5 DIM BYTE(2)
10 I2CEN 100,100
20 I2CSEND &H77, 0, 1, &HAA
30 I2CRCV &H77, 0, 2,BYTE(1)
40 A=BYTE(1)*256+BYTE(2)
50 I2CDIS
60 PRINT A
I valori di BYTE(1) e BYTE(2) che leggo sono corretti, il problema sta nella somma di questi due byte. Come posso risolvere?
Devo convertire BYTE(1) e BYte(2) in binario, fare la somma, poi riconvertire in decimale con complemento a due, o c'è un modo più rapido?
Poi, credo avrò problemi analoghi anche nel leggere il valore di temperatura e di pressione. Grazie!
Voglio utilizzare il sensore di pressione BMP85 su duinomite (MMBasic), prendendo spunto dai tanti esempi che si trovano in rete per Arduino (C).
Quando col Basic vado a leggere le word di 16 bit memorizzate nel sensore, mi tornano indietro solo dei numeri decimali positivi, valori sbagliati.
Con Arduino, infatti, tornano indietro alcuni di questi numeri decimali positivi, altri negativi (valori corretti). Parlo dei dati di calibrazione.
Il codice che ho scritto, per leggere la prima word:
5 DIM BYTE(2)
10 I2CEN 100,100
20 I2CSEND &H77, 0, 1, &HAA
30 I2CRCV &H77, 0, 2,BYTE(1)
40 A=BYTE(1)*256+BYTE(2)
50 I2CDIS
60 PRINT A
I valori di BYTE(1) e BYTE(2) che leggo sono corretti, il problema sta nella somma di questi due byte. Come posso risolvere?
Devo convertire BYTE(1) e BYte(2) in binario, fare la somma, poi riconvertire in decimale con complemento a due, o c'è un modo più rapido?
Poi, credo avrò problemi analoghi anche nel leggere il valore di temperatura e di pressione. Grazie!