Atmega128 I2C

Hey igen

Jeg sidder og pangler lidt med noget i2c, og jeg er ikke sikker på om kredsen er defekt eller hvad der går galt.

Jeg har 2 portkredse PCF8574, de kører fint, både read og write.

så har jeg en PCF8573, Dato / tids kreds, den er begyndt at opføre sig mærkeligt

sådan som der er lige nu kan jeg :

sende Start condtion (husker at fjerne startcondition igen fra registret) sende adressedata + modtage ack sende Mode Pointer (data) + modtage ack men når jeg skal have den i recive mode og sender et re-start condition, så tror den at jeg sender en byte, og mit svar fra TWSR er forkert, og derefter modtager jeg ikke nogle byte.

nogle der har en ide til mit problem

jeg har før haft modtaget bytes fra den, ved kun at sende adressen og så reade...

Kasper

Reply to
Repzak
Loading thread data ...

Hej kasper

Jeg prøver lige med dette men det er skrevet i Pascal

(***********************************)

FUNCTION TIMEREAD:String[8];

Begin Repeat I2C_Start; I2C_WD(%10100000); (* CS kreds *) If Ack_RX Then I2C_WD(%00000010); (* Pointer *) If Ack_RX Then I2C_Stop; I2C_Start; I2C_WD(%10100001); (* Read Mode *) If Ack_RX Then Seconds:=I2C_RD; (* Read Seconds 02 *) Ack_TX; Minutes:=I2C_RD; (* Read Minutes

03 *) Ack_TX; Hour :=I2C_RD; (* Read Hour 04 *) I2C_Stop; Until FejlFlag; End;

(***********************************)

Husk til sidst i read mode ingen Ack.

Skriv igen hvis stadig problem !

.. Med venlig hilsen

Henrik Schouboe Christiansen

Reply to
Henrik

Minutes

Hour

Hey

Tak for hjælpen, men jeg fik det til at virke på den måde sent i går aftes, men efter databladet burde det ikke være nødvendigt at lave en stop efter *pointer*, en repeatedstart skulle være nok og det kan jeg ikke få til at virke... MEn nu virker det da i det mindste (:

KAsper

Reply to
Kasper

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.