Hii Leute Ich will mit dem Arduino UNO ein EEPROM beschreiben und anschliessend auslesen.. Nur bereitet mir die Adressierung des PCF8582C-2 probleme.. Wie auf der Arduino Website beschriben ist das schreiben/ lesen bit ausser acht zu lassen und die andern bits nach rechts zu schieben.. Nun bin ich jetzt ein bischen verwirrt.! Da im Datenblatt des PCF8582C-2 steht dass (The Most Significant Bit (MSB) ‘b7’ is sent first.) nun aber wen ja das 7bit zuerst gesendet wird kann ja die adresse nicht mit 0 beginen sondern mit 1. Oder habe ich da was völlig falsch verstanden..? Ich habe alle hardware pins auf GND gesetzt.. Also hat die adresse ohne das lese bit und wie auf der arduino website beschriben. Eine adresse von B01010000 also wäre das 0x50.. Nun leider mit dieser addresse bekome ich nachfolgenden fehler.. Habt ihr eine ahnung wie diese adresse aussehen könnte.!? Nur aber bei Serial.print(endTransmission); gibts mir immer 2 raus.. Also "2" das heisst received NACK (not acknowledge) on transmit of address.. Meine frage nun.. Kann man mit der Wire library dies trotzdem machen..?? Also weil ja das 7 bit zuerstgesendet wird.. Oder muss man die address auf eine andere art herleiten für dieses EEPROM.. Oder geht das garnicht mit diesem EEPROM.!? Kleine anmerkung... ^^ Ich habe noch nicht so viel erfahrung mit Programmieren. Erst vor einpaar monaten damit angefangen.. Bin aber gewillt mehr zu erfahren und dazulernen.. Danke euch schonmal für eure mithilfe.. ;) MfG Fabio
>Eine adresse von B01010000 also wäre das 0x50..
Na, wenn es damit kein Ack gibt dann versuchs mit 0xA0.
holger schrieb >>Eine adresse von B01010000 also wäre das 0x50.. > > Na, wenn es damit kein Ack gibt dann versuchs mit 0xA0. Ok, werde ich gleich machen.. Kann nicht ganz nachvollziehen wie du drauf gekommen bist.. Also ich bin ja auch schon auf 10||0 also B1010000 gekommen und mit 0x100 probiert wie auch mit B.. ging nicht.. Aber jetzt hat es ahha gemacht.. A = 10 in HEX.. :) Danke MfG Fabio
Also habe es ausprobiert und es ging nicht.. Wie erwartet.. Hatte nämlich schon mit B10100000 probiert und es ging nicht.. Wie würdet ihr so eine adresse deklarieren.. Ich habe es mit #define / byte deklariert .. Die Word addresse wird bei jedem durchgang inkrementiert.. Und vom EEPROM beim erreichen von 255 auf null gestellt.. Könnte es sein das die slave adresse soweit stimmt aber ein fehler in der word adresse den gleichen fehlermeldung hervorrufen würde.. Hier mal ein kleiner code.. #include <Wire.h> #define address 0xA0 byte word_address=0x00; void setup() { Wire.begin(); Serial.begin(); } void loop() { Wire.beginTransmission(address); Wire.write(word_address); Wire.write('H'); Wire.endTransmission(); Serial.println(Wire.endTransmission()); delay(1000); word_address++; } Erkennt vielleicht jemand einen fehler oder kann man mir welche tipps geben.. MfG Fabio
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.