EEPROM 24FC1025

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Beim Schreiben muss das Bit 0 = 0 sein bei der Adresse.
      Folglich muss in der Sub W_EE24Cxx folgendes Stehen:


      Shift ICAdr,Left,1 ' ICAdr höherwertig verschieben
      ICAdr = ICAdr And &b1111_1110 ' Bit0 (Read=&B1/Write=&B0)

      Bits löschen mit OR geht nicht

      Alternativ auf geht auch
      Reset I2CAdr.0 ' Bit 0 löschen (schreiben)

      Beim Lesen muss das Bin 0 gesetzt sein.
      In der Function R_EE24Cxx muss es logisch dann


      ICAdr = ICAdr OR 1 ' Bit0(Read=&B1/Write=&B0)hinzu

      heißen oder Alternativ

      Set I2CAdr.0 ' Bit 0 setzen (Lesen)

      Versuchs mal!
    • Das kann ganz entfallen (Zeile 189 und 215) . Nach dem Shift ist es 0.
      Bei 1 sind sich alle einsig 1= &B1= &H1 :D
      Ich hab meißt zwei Const für einen Chip ( 24r zum lesen und 24w für die Schreibadresse). Die Rechnerei entfällt und es ist gleich ersichtlich was die Adresse macht.

      Dieter schrieb:

      Kann der auch schadlos öfter mal z.B. in einem Sub aufgerufen werden?
      Ja, allerdings wird es von verschiedenen Routinen gesetzt (SPI, Uard, u. a.). Folgendes kann schief gehen:
      Fehlerzaehler = Fehlerzaehler + Err ' zählt den Fehler (wenn er auftrat)
      alle
      möglichen
      Schritte/Sub(s)
      If err =1 Print "Da war ein Fehler" 'schreibt nichts weil er zwischendurch 0 wurde / bzw Meldet einen der woanders auftrat/nicht gezählt wurde.
      Besser nach dem Ereigniss: Fehlervariable=err dann bleibt die bis zum nächsten Zuweisung.
      Ganz praktisch ist es im "I2C-Finder:

      Quellcode

      1. For A = $10 To $FE Step 2
      2. I2cstart
      3. I2cwbyte A
      4. I2cstop
      5. Print A;
      6. If Err = 1 Then
      7. Print " keine Reaktion"
      8. Else
      9. Print "ok"
      10. End If
      11. Next
      Alles anzeigen

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Pluto25 ()

    • Guten Morgen Forum Freunde,
      habt herzlichen Dank für Eure freundlichen Tipps, denn ich möchte die höhere Weihe der BASCOM Programmierung erlangen.

      Mitch64 schrieb:

      Set I2CAdr.0 ' Bit 0 setzen (Lesen)
      Set und Reset so anzuwenden finde ich super. Das macht eine Operation wesentlich deutlicher. Werde ich künftig verwenden.

      Pluto25 schrieb:

      Das kann ganz entfallen (Zeile 189 und 215)
      stimmt, damit habe ich unnötig Zeit vergeudet- werde ich entfernen.

      Pluto25 schrieb:

      Ich hab meist zwei Const für einen Chip
      Da ich diese Sub/Function für mehrere EEPROMS einsetzen möchte und noch andere TWI IC's hinzu kommen, sehe ich etwas mehr Transparenz und dafür nehme ich die Zeitvergeudung durch den Befehl "Set I2CAdr.0" für hinnehmbar.


      Pluto25 schrieb:

      Ganz praktisch ist es im "I2C-Finder:
      Danke auch für die Beantwortung meiner Frage wegen ERR und den Quellcode für einen I2C-Finder, lege ich mir in mein Beispiele Fundus.
      Ich werde mal ausprobieren ob man nach einer Fehlermeldung ERR gleich wieder löschen kann. Dann käme es, so denke ich, zu keinen Konflikten bei Mehrfachaufruf.

      Wünsche Euch einen schönen geruhsamen Sonntag. VY73Dieter
    • Mit jedem Update poppt beim ersten Öffnen die aktuelle History.txt auf.
      Das ist keine Cookie-Erlaubnis, sondern lesenswert ;)
      Die History findest du nachträglich noch im Installationsordner von Bascom.

      Es gibt aber auch User, die probieren alle möglichen Varianten aus und freuen sich, wenn sie was finden.
      Ist so ein bissl wie die Belegung von WP oder die Benutzung von I2cstart statt I2crepstart. Kann gehen, aber muss nicht. Also eher was für Fortgeschrittene, nicht zu empfehlen für Einsteiger, die sollten ja erstmal die Grundlagen verstehen.