I2c.dll en c

punch95 Messages postés 5 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 28 février 2003 - 23 janv. 2003 à 11:39
punch95 Messages postés 5 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 28 février 2003 - 26 janv. 2003 à 12:05
j'aimerai avoir un source c de d'un dll d'un bus i2c 's'il vous plait. MERCI d'avance

6 réponses

cs_isaac Messages postés 9 Date d'inscription mercredi 20 février 2002 Statut Membre Dernière intervention 24 janvier 2003
23 janv. 2003 à 18:53
c pour implementer dans un microcontroleur ou pour le pc ? car j'ai un fais un prog en c et les fonctions de l'i2c sont en assembleur. si ca t'intéresse, dis le moi !
0
punch95 Messages postés 5 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 28 février 2003
24 janv. 2003 à 09:56
je veux bien merci je dois le faire que en c mais ca me donnera une idée c pour un microcontrolleur
0
cs_isaac Messages postés 9 Date d'inscription mercredi 20 février 2002 Statut Membre Dernière intervention 24 janvier 2003
24 janv. 2003 à 19:05
je te retrouve ca et je te le file !
0
punch95 Messages postés 5 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 28 février 2003
24 janv. 2003 à 19:10
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_isaac Messages postés 9 Date d'inscription mercredi 20 février 2002 Statut Membre Dernière intervention 24 janvier 2003
24 janv. 2003 à 22:39
Le code est en asm51, pour un micro de la famille 8051 ou atmel. Fais moi savoir si t'as des problémes, mais ces fonctions marchent trés bien ! :)

;************declaration des fonctions publics**********

public _ecriture
public _lire
public _lirecan
public _ecriture_eeprom
public _lire_eeprom

;************declaraton des fonctions externe***********

extrn code (startup)
extrn code (ext0)
extrn code (ext1)
extrn code (tim0)

;*****************Constantes***********************

debut equ 8000h
READ equ 1
WRITE equ 0
ADR equ r7
VAL equ r5
RESUL equ r7
FADDR equ r7
addr_hi equ r5
zdata equ r3
SDA bit p1.4
SCL bit p1.0

;***************zone de data***********************

dseg at 30h
ERROR: ds 1

;**************table de vecteur**********************

cseg at debut
ljmp startup
org debut+3
ljmp ext0
org debut+13h
ljmp ext1
org debut+0Bh
ljmp tim0
org debut+80h

;*********************ecriture**********************
; void ecriture(octet @,val)

_ecriture: ;fonction qui envoi une donnee
mov ERROR,#0
call start ;val a un esclave d'@ adr
jnc ok1
inc ERROR
ok1:
mov a,ADR
add a,#WRITE
call shout
jnc ok2
inc ERROR
ok2:
mov a,VAL
call shout
jnc ok3
inc ERROR
ok3:
call stop
mov RESUL,ERROR
ret

;*********************lire*************************
; val lire(@)

_lire: ;fonction qui lit une donnee val
call start ;sur l'esclave d'@ adr
mov a,ADR
add a,#READ
call shout
call shin
mov RESUL,a
call NAK
call stop
ret

;*********************lire_can**********************
; val lire_can(@)

_lirecan: ;fonction qui lit une donnee val
call start ;sur l'esclave d'@ adr

mov a,ADR
add a,#READ
call shout
call shin
mov RESUL,a
call ACK
call shin
mov RESUL,a
call NAK
call stop
ret

;**************Fonction standart I2C******************

start:

setb SDA
setb SCL

; Verification bus valide

jnb SDA, x40
jnb SCL, x40
nop
clr SDA
nop
nop
nop
nop
nop
clr SCL
clr c
jmp x41
x40:
setb c
x41:
ret

stop:

clr SDA
nop
nop
setb SCL
nop
nop
nop
nop
nop
setb SDA
ret

shout:

push b
mov b, #8
x42:
rlc a
mov SDA, c
nop
setb SCL
nop
nop
nop
nop
clr SCL
djnz b, x42
setb SDA
nop
nop
setb SCL
nop
nop
nop
nop
mov c, SDA
clr SCL
pop b
ret

shin:

setb SDA
push b
mov b, #8
x43:
nop
nop
nop
setb SCL
nop
nop
mov c, SDA
rlc a
clr SCL
djnz b, x43
pop b
ret

ACK:

clr SDA
nop
nop
setb SCL
nop
nop
nop
nop
clr SCL
ret

AK:
setb SDA
nop
nop
setb SCL
nop
nop
nop
nop
clr SCL
ret
_ecriture_eeprom:
call start
jc x49
;rl a
mov a, FADDR
clr acc.0
call shout
jc x48
mov a, addr_hi
call shout
jc x48
mov a, zdata
call shout
jc x48
clr c
x48:
call stop
x49:
jnc ok4
inc RESUL
ok4:
ret

_lire_eeprom:

push b
mov b, a
call start
jc x47
;rl a
mov a, FADDR
clr acc.0
call shout
jc x46
mov a, addr_hi
call shout
jc x46
mov a, b
call read_current
jmp x47
x46:
call stop
x47:
mov RESUL,a
pop b
ret

read_current:

call start
jc x45
;rl a
mov a, FADDR
setb acc.0
call shout
jc x44
call shin
call NAK
clr c
x44:
call stop
x45:
ret
end
0
punch95 Messages postés 5 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 28 février 2003
26 janv. 2003 à 12:05
MERCI
0
Rejoignez-nous