Bonjour,
je suis en ecole d'ingenieur et dans le cadre d'un projet je dois
utiliser
un PICBASIC-2H relie avec un telemetre ultrasonore par une liaison
I2C.
Malheureusement je n'arrive pas a recuperer les donnees du
telemetre.Lorsque
je run et que je break le programme, les valeurs sont soit
a 0 soit
erronnees. Voici le programme que j'ai implemente dans le
PICBASIC:
CONST SCL = 24
CONST SDA = 23
DIM D1 AS BYTE // D1 est
la distance recherchee
10 GOSUB I2C_WRITE
GOSUB I2C_READ
DELAY
70
GOTO 10
I2C_WRITE:
GOSUB
I2C_START
SHIFTOUT SCL,SDA,2,&HE0,16 //&HE0 est l'adresse par
defaut
du module ultrasonore//
SHIFTOUT
SCL,SDA,2,&H51,16 //&H51 est l'adresse du
mode
mesure//
GOSUB I2C_STOP
RETURN
I2C_READ:
GOSUB I2C_START
SHIFTOUT SCL,SDA,2,&HE0,16
SHIFTOUT
SCL,SDA,2,&H51,16
GOSUB I2C_START
SHIFTOUT SCL,SDA,2,&HE2,16 //&HE2 est l'adresse ou est
enregistre la
diance D1
D1 = SHIFTIN (SCL,SDA,1,16)
GOSUB
I2C_STOP
RETURN
I2C_START:
OUT
SCL,1
OUT SDA,1
OUT SDA,0
RETURN
I2C_STOP:
OUT SDA,0
OUT SCL,1
OUT SDA,1
RETURN
Si vous pouviez m'aider a corriger ce programme cela
m'aiderait beaucoup.
Merci d'avance