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

Re: Wie fragt man Stellung der Relais (rbports) Kategorie: Programmierung (von André H. - 16.11.2003 23:34)
Als Antwort auf Re: Wie fragt man Stellung der Relais (rbports) von Michael - 14.11.2003 23:34

Hallo Michael,

Ich habe die Sache jetzt einmal getestet.
Bei mir funzts.
Jedoch gibt es einen kleinen Bug in getd(), welcher kein explizites TRUE, sondern
nur ein einzelnes Highbit entsprechend der Portnummer bewirkt.
Jedoch funzt es dennoch, wenn man auf ungleich 0 prüft.
Hiermit hat es auf jeden Fall gefunzt:
thread main
{byte i;
 hwcom.init();
 hwcom.setspeed(8);
 hwcom.put(12);
 rbports.setb(0,0b01001110);

 for i=0...7
 {
  hwcom.put((rbports.get(i)!=0 and 1) +0x30);
 }
 sleep 50;
 quit 1;
}


Der Bug in getd() lässt sich beheben, wenn man die vorhandene Zeile
in der Funktion gegen diese austauscht:
return (devstates[device] and (1 shl Port))!=0;

Dann ergibt sich ein einfachers Testproggie:
thread main
{byte i;
 hwcom.init();
 hwcom.setspeed(8);
 hwcom.put(12);
 rbports.setb(0,0b01001110);

 for i=0...7
 {
  hwcom.put((rbports.get(i) and 1) +0x30);
 }
 sleep 50;
 quit 1;
}


MfG André H.


> Hallo Krassos,
>
> Danke für Deinen Tip. Leider hatte ich es auch schon mit dieser Version versuch aber es
> brachte auch nicht den gewünschten erfolg. Ich bekomme nach wie vor nur 0 zurück obwohl
> die andere Funktion die richtigen Werte raus bringt:
> R0:0
> R1:0
> R2:0
> R3:0
> R4:0
> R5:0
> R6:0
> R7:0
> R8:0
> R9:0
> R10:0
> R11:0
> R12:0
> R13:0
> R14:0
> R15:0
> ALLE-R:00100011



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: