Hm. Ist das C mit Zügen zu C++?
*nuransicversteh* *c++buchauskram*
Mit AVRStudio kann man sich die FuseBits viel schöner anschauen.
Musst einfach auf den kleinen STK-Button klicken.
Und dann bitte das JTAG ausschalten; Habe zwar keine Hoffnung, dass das was hilft, aber mach' mal...
In der Funktion TWI_Robot setzt du zwar das TWBR, aber nicht den TWI-Prescaler.
Den musst du auf 1 setzen; dann kannst du berechnete Werte einstellen.
z.B. 15 für 400KHZ
...ich habe mal ne Forme umgeformt........
Oder täusch ich mich da?
*EDIT
Ja, das tue ich; hast du gemacht;
*Nadel weitersuch*
*
Achso: Es wäre hilfreich-er, wenn du den main, mit nur den benötigten Funktionen schicken würdest. Denn wenn ich jetzt alle Funcs durchsehe, die z.T. die gleiche Funktion haben, bin ich noch ne Weile beschäftigt......
Ging das?
es klappt jetzt. Nachdem ich einige Teile des Programmes umgestellt habe und ein repeated start eingefügt habe. Danach habe ich mein PCF8574_test nochmal laufen lassen und er hat den auf 0x70 gefunden. Ich hatte gestern die Adresse per DIP-Switch geändert und heute nicht mehr daran gedacht. Getestet habe ich aber weiter auf 0x7F. Dumm gelaufen für mich.
Der JTAG war aus. Du erinnerst Dich, verdrehte Logik von Atmel 1=aus, 0=an
Ich füge die lauffähige Version mal ein. Gelesen wird mit dem Aufruf Portwert = PCF8574_read(subadresse des PCF8574 von 0-7)
geschrieben mit dem Aufruf
PCF8574_read(subadresse des PCF8574 von 0-7, Portwert)
Wie gesagt geht das PGM von einem AP Type mit Hauptadresse 0x70 aus.
Bei einem P Typ muß lediglich die 0x70 in 0x40 in der Funktion
PCF8574_sendAdrRW()
geändert werden.
Nein, das ist kein C++, sondern der ganz normale CAVR C-Compiler. Er weicht aber ziemlich vom GCC oder ICC AVR C-Compiler ab. Ich finde die Dialektflut der C-Compiler auch nicht gerade toll, aber was will man machen. Ich habe mir den halt vor ein paar Jahren mal gekauft. Da war das GCC Projekt noch nicht so weit wie heute.
Nach dem Erfolg mit dem PCF8574AP habe ich ein EEPROM 24C65 getestet. Das läuft bis einschließlich lesen des ersten Byte. Danach ist Pumpe. Ich habe aber in anderen Artikeln gesehen, dass der Baustein Page weise angesprochen wird. Kann man bei dem nicht einzelne Byte lesen oder schreiben? Naja, werde ich auch noch herauskriegen.
Hi Tobi
ich bin auch mit dem EEprom halbwegs klar gekommen. Ich habe zwei Stück davon. Laut TWI klappt jetzt alles wunderbar. Die Daten sind allerdings Schrott schreiben 0xegal, lesen 0xff. Beim zweiten schreibe ich 0x50 und bekommen 0x8A und beim zweiten Read ist hängen im Schacht.
Das sind aber alte Bauteile, die ich noch rumliegen hatte. Ich bin also nicht sicher, ob die noch OK sind. Werde mir am Montag mal neue besorgen.
Ich wünsche Dir noch ein schönes Wochende.
Lesezeichen