klappt auch wunderbar
nur der Speed mein Atmel 4mhz braucht zum kompletten beschreiben
eines i2C EEprom 24C16 mit zufall generierung aller speicherstellen 0,8sec
der PC für das gleiche via WX Gui und pyparallel 20 SEKUNDEN
mehr wie die datenpins wechseln kann ich ja nicht
warum braucht der so lange
Code: Alles auswählen
# D0 = (0=scl) 1=NotSCL
# D1 = 0=sda 1 = notSDA
# sda=1, scl=1 =setData(0)
# sda=1, scl=0 =setData(1)
# sda=0, scl=1 =setData(2)
# sda=0, scl=0 =setData(3)
def start(self):
self.p.setData(0)# sda=1, scl=1
self.p.setData(2)# sda=0, scl=1
self.p.setData(3)#( sda=0, scl=0
def stop(self):
self.p.setData(3)#( sda=0, scl=0
self.p.setData(2)# sda=0, scl=1
self.p.setData(0)# sda=1, scl=1
def ack(self):
self.p.setData(1)# sda=1, scl=0
self.p.setData(0)# sda=1, scl=1
time.sleep(0.01)
self.p.setData(1)# sda=1, scl=0
def send(self,value):
x=0x80
while x:
sda=(x & value) and 1
if sda == 1 :
self.p.setData(1)# sda=1, scl=0
self.p.setData(0)# sda=1, scl=1
self.p.setData(1)# sda=1, scl=0
else:
self.p.setData(3)#sda=0, scl=0
self.p.setData(2)# sda=0, scl=1
self.p.setData(3)#sda=0, scl=0
x=x>>1
def writeRegister(self,address, register, value,):
self.start()
self.send(address)
self.ack()
self.send(register)
self.ack()
self.send(value)
self.ack()
self.stop()
def writePage(self,adresse,register,daten):
self.start()
self.send(adresse)
self.ack()
self.send(register)
self.ack()
for i in daten:
self.send(i)
self.ack()
self.stop()