Hallo Ich verwende den AT-Mega16 und programiere in Bascom Ich bekomme aus einem Can-Bus eine Byte Variable, diese kann ich direkt über den I2C bus an den PCF8574 weiterleiten und die Dementsprechenden Ausgänge setzten. Wie soll ich es anstellen, dass ich zum Beispiel einzelne Ausgänge des PCF8574 auf "Handbetrieb" umschalte. Praktisch sie werden direkt vom AT-Mega angesteuert. es soll zB P0,P4 auf Handbetrieb und die anderen auf Automatik vom Can.Bus Grüße Manfred
Hi, irgendwie verstehe ich nicht was du mit "Handbetrieb" und "Automatikbetrieb" meinst. Erklaere bitte nochmal was du genau willst, dann kann ich Dir helfen. Gruß, Dirk
Wenn ein PCF8574 eine Porterweiterung ist, glaube ich zu verstehen, was du meinst. Ich musst aber auch erst ein paar Tage nachdenken und den Sinn zu verstehen! Dim A As Byte. A=255 'damit sieht A als Binär so aus: 11111111 A.2=0 'jetzt sieht A so aus: 11111011 Und dann A in den Bus schicken. Wenn ich dich richtig verstanden habe, gibt der CAN-Bus bestimmt Schaltzustände aus, die durch den AVR in den PCF gehen. Jetzt willst du die Kontrolle aber nicht vollständif abgeben und hast zwei Bits, die du selbst steuern willst. Dann einfach mit Byte.Binärstelle deinen gewünschten Wert erzwingen. Wobei Byte dann dein Deklarierter Variablenname ist und Binärstelle wahrscheinlich 0 und 5 bei dir. Es müsste aber eigentlich auch mit BYTE AND &B11111110 und BYTE AND &B11101111 oder so ähnlich geh'n. Dazu kannst du in der Hilfe mal unter GETRC5() nachschauen. Damit wird im Code das Togglebit gelöscht. Was weniger Zyklen und weniger Speicher braucht musst du dann selbst nochmal ausprobieren.
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.