Hallo, Ich habe da ein Problem mit dem o.g. Sensor in Verbindung mit einem 80C552. Eigentlich sollte bis morgen ein kleines Programm laufen, das mir auf nem 2x16 Zeichen Display die Temperatur ausgibt. Da ich aber erst heute angefangen habe, hoffe ich, dass mir hier jemand helfen kann. So wie ich das im Datenblatt verstanden habe muss ich wiefolgt vorgehen: Start Adresse Kommando eeh Stop Start Adresse Kommando aah wiederholter Start Adresse (mit LSB=1) nun müssten im S1DAT zumindest schonmal die oberen 8 bit der Temp. stehen. Das letzte was ich bekomme ist eine 40h im Status, d.h. der Slave scheint wohl zu reagieren. Daten schickt er jedoch nicht. Hier ist mal das grobe Programm. Anstatt einen gewissen Statuswert abzuwarten gehe ich einfach davon aus, dass nach der jeweils eingebauten Zeitschleife ein ACK vom Slave kommt, da ich nach jedem gesendeten Byte mir den Status habe ausgeben lassen. mov S1CON, #E2h ;I2C Bus starten call zeit ;********************************************************************* mov S1DAT, #10011110b ;Slave Adresse (wenn alle 3 Kontakte offen sind) clr STO clr SI call zeit ;******************************************************************** mov S1DAT, #eeh ;Temperaturkonvertierung starten clr STA clr STO clr SI call zeit setb STO ;I2C Bus stoppen ;******************************************************************* ;******************************************************************* mov S1CON, #E2h ;I2C Bus starten call zeit mov S1DAT, #10011110b ;Slave Adresse (wenn alle 3 Kontakte offen sind) clr STO clr SI call zeit ;******************************************************************* mov S1DAT, #aah ;Kommandobyte Temperatur auslesen clr STA clr STO clr SI call zeit mov S1CON, #E2h ;wiederholte Startbedingung senden call zeit ;******************************************************************* mov S1DAT, #10011111b ;Slave Adresse (wenn alle 3 Kontakte offen sind) clr STO clr SI call zeit mov p1, S1STA ;in S1STA steht 40h, d.h. der Slave ist da M f G Sebastian
Sorry für das Doppelposting, ist mir schonmal hier passiert. Ich klicke aber garantiert nicht 2 mal.
Als erstes einen Lenz schieben, und dann doch mal arbeiten müssen. Schicksal
Danke für den hilfreichen Kommentar. Aber es funktioniert mittlerweile.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.