PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C Frage



maus
16.06.2008, 09:57
Hallo,
Könnte mir einer von euch erklären wie ich den PCF 8574 P IC mit einem atmega32 benutzen kann ?
Ich Programmiere in bascom.

Ich stelle mir das folgender massen vor(ob das wirklich geht weiß ich nicht), über mein Programm auf dem Atmega32 möchte ich jeden Pin einzelnt an und ausschalten.

Hoffentlich versteht man was ich suche.

Vielen Dank schon mal für eure hilfe.

Gruß maus

Andree-HB
16.06.2008, 10:25
...herzlichen Glückwunsch zu so einem ersten Posting - gib doch einfach mal den Begriff "PCF8574" in der Suche ein und schaue, was dann passiert !

...dennoch - wilkommen im Forum !

maus
16.06.2008, 11:02
Hi,
Jup, dort findet sich aber nicht das was ich suche :(

StevieL
17.06.2008, 06:34
Hallo,

ganz einfach:


I2csend Slave , Variable , 1


Slave ist die Hardwareadresse und Variable ist eine Bytewert (der dann an den Ausgängen anliegt). Die Bits in "Variable" musst du einfach dementsprechend setzen, welchen PIN du ein- oder ausschalten willst.

maus
17.06.2008, 09:02
Hallo,
Mein code sieht gerade so aus:

$regfile = "M32def.dat"
$crystal = 4000000
$baud = 9600

Config Scl = Portc.0
Config Sda = Portc.1


Dim Variable As Bit


I2csend Slave , Variable , 1



End

Irgendwas ist daran falsch, beim Compilieren kommt schon ein fehler, ich vermute mal das ich das nicht ganz verstanden habe, was du meinst.

Gruß Maus

mycroc
17.06.2008, 09:49
wenn ich die Forum suche benutze finde ich 53 ergebnise zum "PCF8574" im forum "Basic Programmierung (Bascom Compiler)". Ich kann mir nicht vorstellen das da nichts zu findne ist. Auf jeden fall wirst du aber hier https://www.roboternetz.de/wissen/index.php/Bascom_I2C_Master antworten findne

Jaecko
17.06.2008, 11:40
Der Fehler an dem Code dürfte sein, dass "Variable" in Bit und kein Byte ist.

StevieL
18.06.2008, 06:27
Hallo,

genau. Variable muss als Byte definiert sein. Und Slave musst du auch irgendwo festlegen.

maus
18.06.2008, 08:59
Hallo,
Vielen Dank für deine Hilfe, aber was ich auch nicht verstehe ist das mit den Adresse. Mein Problem ist halt ich finde keine wirkliche Beschreibung dazu.

Über aufklärung würde ich mich freuen.

Gruß Maus

StevieL
18.06.2008, 17:32
Hallo,

dann hast du nicht richtig gesucht! Die Adresse wird als erstes Byte nach der Startsequenz übergeben. Der PCF hat die feste Adresse &B0100, gefolgt von der Subadresse, welche du über die Adresspins A0 bis A2 festlegst. Danach kommt das Lese/Schreibbit. Wenn du den angegebenen Bascom-Hochbefehl nimmst, kannst du das Lese/Schreibbit auf 0 lassen. Diese 8 Bits ergeben somit genau ein Byte.

Du kannst übrigens auch schreiben:


I2cstart
I2cwbyte Slave
I2cwbyte Variable
I2cstop


Das bewirkt das gleiche wie I2csend slave, variable, 1.

PS: Hast du das Datenblatt zum Baustein schon gelesen? Vermutlich nicht :-k Solltest du aber dringend nachholen.