Re: PCF8591 Kategorie: I²C-Bus (von martin binder - 6.05.2002 14:43) | |
Als Antwort auf Re: PCF8591 von Andre - 4.05.2002 14:46
| |
> Hallo MArtin oder andere ! > Kann man auch nur einen Port Abfragen ? > Gruss > André > Hallo André, bitte gib wenigstens den ersten Buchstaben deines Familiennamens ein, der Moderator hei�t nämlich auch André mit H. hinten... Ja, du kannst auch nur einen Eingang abfragen. Das Controlbyte steuert beim PCF8591 die Funktion der Ein-/Ausgänge sowie die weitere Abfrage. Ist etwas kompliziert zu verstehen, ich probiers mal zu erklären. Sieh dir das Control - Byte mit der Bit - Beschreibung in meinem Treiber an, hier einmal etwas besser aufgelistet: ------------------ // Control - Byte Bit-Werte : 0 a b b 0 c d d // a .... analog output enable // . . 0 = AUS // . . 1 = EIN // bb ... Input program mode // . . 00..4 Eingänge // . . 01..3 differential-Eingänge // . . 10..2 single, 2 differential // . . 11..2 differential-Eingänge // c .... Auto Increment // . . 0..dieser Eingang // . . 1..nächster Eingang bei nächster Abfrage // dd ... A/D-Kanalnummer // . . 00 = Kanal 0 // . . 01 = Kanal 1 // . . 10 = Kanal 2 // . . 11 = Kanal 3 //======== // Beim Aufruf im Programm verwendest Du dann halt statt 0x44 in "Control" // ( = 0100 0100 binär, das bedeutet : Ausgang EIN, Auto Increment ) pcfa.aout(i, 0x44, digi); . . .// output on, increment on // einen anderen Wert wie 0x01 // ( = 0000 0001 binär, das bedeutet : Ausgang AUS, Eingang 01) pcfa.aout(i, 0x01, digi); . . .// output off, increment off, line 1 // und dann fragst du nur einmal ab mit dem Befehl: ain1 = pcfa.ain(i); // Wert 1 ------------------- Ich habs nicht selber probiert, aber es sollte so funktionieren. Beim "increment on" stimmt die Kanalnummer nicht, das bedeutet aber nur, da� man halt etwas experimentieren mu�. Viel spa� dabei Martin | |
Antwort schreiben Antworten: |