Hilfe für Anfänger

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Guido Körber
Site Admin
Posts: 2879
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Re: Hilfe für Anfänger

Post by Guido Körber »

Die wenigsten IIC Devices erlauben es einfach so etwas zu lesen, ohne dass man vorher z.B. eine Registeradresse geschrieben hat.

Das wäre eine Möglichkeit, die andere ist, dass man wenn man die internen Pull-Up Widerstände abschaltet natürlich extern welche haben muss.
Playground
Posts: 11
Joined: Tue Feb 23, 2010 9:35 pm

Re: Hilfe für Anfänger

Post by Playground »

also muss ich dann erst mal einen leeren Write request schreiben? Ich weiß nicht, was passiert, wenn man versucht zu schreiben. dies ist in meinem speicher nicht erlaubt und sollte auch von diesem verhindert werden. ich denke mal, dann würde ein fehler kommen.

pull up widerstände sind extern vorhanden.
friend-of-rq
Posts: 389
Joined: Sun Feb 13, 2005 1:22 pm
Location: Gerblingerode / Duderstadt
Contact:

Re: Hilfe für Anfänger

Post by friend-of-rq »

Hallo Playground,

kann man denn das EEPROM mit dem Test-Tool All-IN-ONE auslesen ?
Playground
Posts: 11
Joined: Tue Feb 23, 2010 9:35 pm

Re: Hilfe für Anfänger

Post by Playground »

Hallo,

ja, das klappt wunderbar. sowohl mit dem "Simple I2C", als auch mit dem "ALL IN ONE". Vor allem auch ohne vorher irgendwas zu schreiben. Hab ja meinen Code aus dem Quellcode vom Simple I2C abgeschaut. Und da stand meines erachtens bei der funktion Lesen auch nicht erst noch ein schreiben vorher drin. Komisch.

Grüße

Edit:

So, hab mal ein bisschen rumgetestet. Diese Zeile war schuld. Die Adresse darf nich geschoben werden.
rep.Bytes[1] = adresse <<1 | 0x01 ; //Address for read
Funktioniert jetzt auch ohne vorheriges schreiben. Mit einem kurzem Schreiben hat der Speicher scheinbar auch kein Problem.
Allerdings ist die Startadresse im Speicher immer eine andere beim mehrmaligen auslesen. Gibt es eine möglichkeit den Adresszähler auf 0 zu setzen? Ein einfaches Write schreibt ja auch nur an die gerade anliegende Adresse, oder? Gibt es da eine Möglichkeit eine Zieladresse im Speicher mit anzugeben?
User avatar
Christoph Jung
Posts: 673
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: Hilfe für Anfänger

Post by Christoph Jung »

Dafür muss man vorher schreiben. Das Schreiben ist dafür da, den Startpunkt für das Auslesen zu setzten. Das ist auch im Simple IIC drin. Einfach nur den schreibbefehl, die Adresse und das zu lesende Register schreiben und dann von da an Lesen. Wenn man vorher nicht schreibt wird automatisch das Register 0x00 genommen, weil IOWKIT_SPECIAL_REPORT mit memset() auf null gesetzt wird.
Software developer
Playground
Posts: 11
Joined: Tue Feb 23, 2010 9:35 pm

Re: Hilfe für Anfänger

Post by Playground »

sehr schön. danke. klappt super.
Post Reply