Re: I2C und dann PCF ansteuern oder umgekehrt Kategorie: I²C-Bus (von André H. - 21.10.2003 14:50) | |
Als Antwort auf I2C und dann PCF ansteuern oder umgekehrt von aquamolli - 18.10.2003 22:29
| |
Hallo Aquamolli, Zum Ansteuern des HSRel5 benutzt Du am besten das Modul pcf.c2 . Wichtig bei pcf.c2 ab V2.1 ist der Init() ! D.h., es mu� beim Systemstart einmalig pcf.init(); aufgerufen werden, sonst ganz es u.U. zu Fehlfunktionen kommen. Beim Schalten der Relais beim HSRel5 (wie auch beim SR/PCF-Rel8 I²C-Vers. & PCF-RT4-HS) mu� beachtet werden, da� die Relais invertiert geschalten werden. D.h., ein High-Bit bedeutet Relais, ein Low-Bit beudeutet Relais ein. Somit wird mit pcf.on() das Relais ausgeschaltet und mit pcf.off() das Relais eingeschaltet. Der Grund für diese Invertierung ist ganz einfach: So wird vermieden, da� alle Relais nach Anlegen der Spannung sofort anziehen. Hier ein kleines Testproggie: const PCF=0; // Adresse des PCF8574 (0-15) thread main {string s;byte state,i; pcf.init(); hwcom.init(); hwcom.setspeed(8); hwcom.print(s); loop { hwcom.put(12); s="Relais Testproggie"; hwcom.print(s); hwcom.ret(); hwcom.ret(); s="Rel1"+9+"Rel2"+9+"Rel3"+9+"Rel4"+9+"Rel5"+9+"Rel6"+9; hwcom.print(s); wait hwcom.ready(); s="Rel7"+9+"Rel8"+13+10; hwcom.print(s); state=pcf.in(PCF); for i=0...7 { hwcom.put(((not state shr i) and 1) +0x30); hwcom.tab(); } s=13+10+"Relais 1 - 8: "; hwcom.print(s); wait hwcom.rxd(); i=hwcom.get(); hwcom.put(i); i=i-0x31; if i<=7 { s=13+10+"1=Ein, 0=Aus: "; hwcom.print(s); wait hwcom.rxd(); state=hwcom.get(); hwcom.put(state); pcf.set(PCF,i,(state-0x30)==0); } } } Lade das Proggie in die CC2 und öffne dann das Hyperterminal (57.600 Baud). Jetzt solltest Du die Relais bequem schalten können. :-) MfG André H. > Hallo Forum, > > tja ich hab da wieder mal ein Prob. Hab von Andrè das HS5Rel mit für den I2C-Bus. Leider kann ich keines der > Relais ansprechen. Mu� ich zuerst den I2C capturen (wenn ja, wie??) und dann das Relais per PCF.on(1,0)setzen > oder umgekehrt? Kann mir jemand ein bischel Quälcode als Beispiel dafür geben?? > > Danke > > Aquamolli Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | |
Antwort schreiben Antworten: |