Anfängerprobleme mit Simple-I2C und Eeprom
Moderator: Guido Körber
-
- Posts: 12
- Joined: Tue Jul 05, 2022 1:21 pm
Re: Anfängerprobleme mit Simple-I2C und Eeprom
Funktioniert! Habe mich jetzt schrittweise vorgearbeitet und lese grade 32 byte am Stück aus, die ich dann in 4 dbl je 8 byte umwandle.
Vielen Dank!! Problem gelöst!
Vielen Dank!! Problem gelöst!
- Christoph Jung
- Posts: 672
- Joined: Sun Oct 08, 2006 3:43 pm
- Location: Germany / Berlin
- Contact:
Re: Anfängerprobleme mit Simple-I2C und Eeprom
Trotzdem würde ich die Vi mal mit der letzten Lib neu bauen, nicht das noch andere Stolpersteine drin sind.
Software developer
-
- Posts: 12
- Joined: Tue Jul 05, 2022 1:21 pm
Re: Anfängerprobleme mit Simple-I2C und Eeprom
Hi!
Ich habe nochmal eine weiterführende Nachfrage:
Manchmal sürzt mir der IO-Warrior/Labview ab und ich habe den Verdacht, dass es mir der Anzahl "Ansprachen" des Devices zu tun hat. Die Fehlermeldung ist die Folgende:
IOWarrior_Special_Rawread.vi:1200001: IOWarrior RawRead error: Not 64 bytes: 0
Tritt immer in Folge eines "Rawread"-Aufrufs auf und enthält nicht mehr das angeforderte Byte-Wort, sondern 3 Byte:
03 0E A1
Gibt es eine Tabelle mit Erklärung der Error-Codes oder hat jemand einen Vorschlag, wie ich mich näher an die Lösung heranarbeiten kann?
Danke und viele Grüße!
Ich habe nochmal eine weiterführende Nachfrage:
Manchmal sürzt mir der IO-Warrior/Labview ab und ich habe den Verdacht, dass es mir der Anzahl "Ansprachen" des Devices zu tun hat. Die Fehlermeldung ist die Folgende:
IOWarrior_Special_Rawread.vi:1200001: IOWarrior RawRead error: Not 64 bytes: 0
Tritt immer in Folge eines "Rawread"-Aufrufs auf und enthält nicht mehr das angeforderte Byte-Wort, sondern 3 Byte:
03 0E A1
Gibt es eine Tabelle mit Erklärung der Error-Codes oder hat jemand einen Vorschlag, wie ich mich näher an die Lösung heranarbeiten kann?
Danke und viele Grüße!
- Christoph Jung
- Posts: 672
- Joined: Sun Oct 08, 2006 3:43 pm
- Location: Germany / Berlin
- Contact:
Re: Anfängerprobleme mit Simple-I2C und Eeprom
Der Iow56 hat beim I2C nur zwei Errorbits: ACK (0x80) und Arb Loss (0x40), steht im Datenblatt zum 56er.
Der Fehler
Das passiert in der Regel, wenn er ins Timeout läuft, welches man eingestellt hat. Ein versuch wäre mal den Timout zu verlängern.
Der Fehler
sieht eher danach aus, als ob ein Lesebefehl nicht ausgeführt werden konnte.IOWarrior_Special_Rawread.vi:1200001: IOWarrior RawRead error: Not 64 bytes: 0
Das passiert in der Regel, wenn er ins Timeout läuft, welches man eingestellt hat. Ein versuch wäre mal den Timout zu verlängern.
Software developer
-
- Posts: 12
- Joined: Tue Jul 05, 2022 1:21 pm
Re: Anfängerprobleme mit Simple-I2C und Eeprom
Moin!
Den Timeout setzt man ja am Anfang. Muss man den zwischen verschiedenen Lesebefehlen aufrufen, damit der warrior den macht? Denn ich hab ne While-Schleife mit dem immer gleichen Lesebefehl und die läuft definitiv schneller, als der Time-out, den ich da gesetzt habe.
Danke!
Den Timeout setzt man ja am Anfang. Muss man den zwischen verschiedenen Lesebefehlen aufrufen, damit der warrior den macht? Denn ich hab ne While-Schleife mit dem immer gleichen Lesebefehl und die läuft definitiv schneller, als der Time-out, den ich da gesetzt habe.
Danke!
- Christoph Jung
- Posts: 672
- Joined: Sun Oct 08, 2006 3:43 pm
- Location: Germany / Berlin
- Contact:
Re: Anfängerprobleme mit Simple-I2C und Eeprom
Der Timeout ist global für in der iowkit.dll und muss nur einmal gesetzt werden. Sprich einmal nach dem Open() setzten und dann einfach vergessen.
Wie schnell wird denn die Loop durchlaufen? Evtl. dort mal einen Timer/Sleep oder wie man das in LabView nennt einbauen und schauen ob das damit verschwindet. 1ms oder 5ms zum Test. Der IOW56 kann maximal alle 2ms einen Report senden/Empfangen wenn ich mich recht erinnere.
Wie schnell wird denn die Loop durchlaufen? Evtl. dort mal einen Timer/Sleep oder wie man das in LabView nennt einbauen und schauen ob das damit verschwindet. 1ms oder 5ms zum Test. Der IOW56 kann maximal alle 2ms einen Report senden/Empfangen wenn ich mich recht erinnere.
Software developer
-
- Posts: 12
- Joined: Tue Jul 05, 2022 1:21 pm
Re: Anfängerprobleme mit Simple-I2C und Eeprom
Der Fehler tritt auf mit dem 200ms Timer im Loop und nem Timeout von 1000ms. Ich hab den Loop jetzt mal auf 1500 runtergebremst, damit er langsamer läuft, als der Timeout.
Is jetzt bisschen langweilig im Büro ;-)
Is jetzt bisschen langweilig im Büro ;-)
- Christoph Jung
- Posts: 672
- Joined: Sun Oct 08, 2006 3:43 pm
- Location: Germany / Berlin
- Contact:
Re: Anfängerprobleme mit Simple-I2C und Eeprom
Das ist dann doch schon was sehr langsam und 200ms sollte eigentlich funktionieren. Evtl. müsste man diese Fehler abfangen und den Lesevorgang einfach erneut durchführen. So handhabe ich das in C/C++ Programmen immer.
Software developer
-
- Posts: 12
- Joined: Tue Jul 05, 2022 1:21 pm
Re: Anfängerprobleme mit Simple-I2C und Eeprom
So habe ich es jetzt gelöst. Ich fange den Fehler auf, gehe in eine umgebende while-Schleife, lösche den Fehler und initialisiere den Warrior neu.....so lange bis eine Nutzereingabe die Schleifen stoppt. Das hat jetzt recht gut funktioniert.
Ein schönes Wochenende!
Ein schönes Wochenende!