Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wechselschalter Kategorie: Programmierung (von Bernd Rüffer - 16.04.2004 8:05)
Ich nutze:
C-Control II Station, OSOPT V3.0
Hallo *.*,

ähnlich wie in einer "normalen" Wohnung möchte ich in unserem Wohnmobil von
verschiedenen Orten Verbraucher (Licht) ein- und ausschalten.

Daher habe ich folgende "Lese-Logik" in CC2 realisiert:


function ReadAll() returns int
{ byte i; byte n; int s;
// Lesen saemtlicher Bausteine (PCFaddr)
  s = 0;
  for i = 0 ... 15
  { if PCFaddr and (1 shl i) != 0
    { i2c.cstart(AddrR[i]);
      n = i2c.readlast();
      i2c.stop();
//    Berechnung von ChgeData
//    danach speichern von ReadData
      ChgeData[i] = ReadData[i] xor n;
      s = s + ChgeData[i];
      ReadData[i] = n;
    }
  }
  return s;            
}


Jeder exitierende PCF8574/A Baustein wird gelesen (Variabel n).
Der Wert wird mit den alten Wert mittels XOR verglichen und
das Ergebnis in ChgData gespeichert.
Der neue Wert wird in ReadData gespeichert.

Mittels ChgData kann ich feststellen, ob ein Eingang zwischen
zwei Aufrufen von "ReadAll()" den Wert geändert hat.

Die Felder ChgData und ReadData haben die gleiche Grö�e wie Data aus PCF.C2.
Beim INIT hat ReadData die gleichen Werte wie "Data" und ChgData den Wert NULL.
In PCFaddr wird das Ergebnis von "pcf.init()" gespeichert.

Nun die Fragen:
Gibt es Schwierigkeiten mit den Werten in "Data"?
Ist dieser Weg überhaupt der richtige?


DANKE für jede Info,

MfG
Bernd Rüffer


    Antwort schreiben


Antworten:

Re: Wechselschalter (von André H. - 21.04.2004 18:42)
    Re: Wechselschalter (von Bernd Rüffer - 26.04.2004 12:05)
        Re: Wechselschalter (von André H. - 6.05.2004 8:32)