das edip macht Probleme bzw. ich bin das Problem Kategorie: Programmierung (von Heribert - 8.06.2006 18:31) | ||
| ||
Hallo, im Grunde läuft eigendlich alles, nur sporadisch hängt sich der I2C-Bus auf. Es scheint eindeutig mit dem edip bzw. mit der Ansteuerung zusammen zuhängen. Nur ich finde den Fehler nicht. Event. sieht jemand von euch ja was ich falsch mache. Hier ein Auszug aus meinem Code in Kurzform. const eDIPAddr[]=32,33; edip.RxBuffer Display[2]; string s,strg,prog; byte second,tl,ul,dsp,o,flag; int q,addr,addr2,zeit,ein,timee,timeem,timea,timeam,max,min; thread start {byte i,a,x,j,screen[2]; string s,l; screen[0] = 1; screen[1] = 2; o=0; run schaltuhr.timer; for o=0...1 {var.Anzeige[o] =9 ; edip.enableScreen (eDIPAddr[o],1); edip.enableTerminal(eDIPAddr[o],1); edip.clrScreen(eDIPAddr[o]); edip.setLight (eDIPAddr[o],1); edip.dimmLight(eDIPAddr[o], 50); edip.setCursor(eDIPAddr[o], 0); edip.setTouchKeyAction (eDIPAddr[o],1,1); } byte t[24]; o=0; loop { if o >1 o=0; timedate(s); if second!=system.second() {for j=0...1{edip.setFont (eDIPAddr[j],3);sleep 50; edip.setTextMode(eDIPAddr[j],5);sleep 50; edip.text(eDIPAddr[j],0,26,2,s);} second=system.second(); } edip.receiveframe(eDIPAddr[o],Display[o]); if var.Anzeige[o] ==1 anzeige.Kist (eDIPAddr[o]); else if var.Anzeige[o] ==2 anzeige.Sist (eDIPAddr[o]); else if var.Anzeige[o] ==3 anzeige.SWist (eDIPAddr[o]); else if var.Anzeige[o] ==4 ; else if var.Anzeige[o] ==5 anzeige.ASollIstK (eDIPAddr[o]); else if var.Anzeige[o] ==6 anzeige.betrieb (eDIPAddr[o]); else if var.Anzeige[o] ==7 anzeige.oel (eDIPAddr[o]); else if var.Anzeige[o] ==9 {anzeige.ver (eDIPAddr[o]);var.Anzeige[o] =0;} else if var.Anzeige[o] ==10 {anzeige.Temp (eDIPAddr[o]);} if var.DspFlag[o] == 0 {edip.setLight (eDIPAddr[o],0);edip.setTouchFrame (eDIPAddr[o],0); edip.clrScreen(eDIPAddr[o]);edip.touchKey (eDIPAddr[o],0,0,190,120,5,0,0,""); edip.enableScreen (eDIPAddr[o],0);var.DspFlag[o] =0xFF;} do {a=edip.getRxData(Display[o],t); if a<255 and a //------------------------------------------------------------------------------ // Display 1 //------------------------------------------------------------------------------ {if screen[o] ==1 {if t[0]=='A' {reset schaltuhr.timer;run schaltuhr.timer; if t[2]==1 {screen[o] =1;TLoeschen (20);UMenue (2,21,22,23,21); var.Anzeige[o] =1;} if t[2]==2 {screen[o] =2;TLoeschen2 (20); var.Anzeige[o] =10;} if t[2]==5 {edip.removeTouch(eDIPAddr[o],5,1);var.Anzeige[o] =9; edip.enableScreen (eDIPAddr[o],1);edip.setLight (eDIPAddr[o],1);} if t[2]==20 {TLoeschen (20);UMenue (2,21,22,23,21); var.Anzeige[o] =1;} if t[2]==21 {TLoeschen (20);UMenue (2,21,22,23,21); var.Anzeige[o] =1;} etc ......... }} //------------------------------------------------------------------------------ // Display 2 //------------------------------------------------------------------------------ else if screen[o] ==2 { if t[0]=='A' {reset schaltuhr.timer;run schaltuhr.timer; if t[2]==1 {screen[o] =1;TLoeschen (20);UMenue (2,21,22,23,21); var.Anzeige[o] =1;} if t[2]==2 {screen[o] =2;TLoeschen2 (20); var.Anzeige[o] =10;} if t[2]==5 {edip.removeTouch(eDIPAddr[o],5,1);var.Anzeige[o] =9; edip.enableScreen (eDIPAddr[o],1);edip.setLight (eDIPAddr[o],1);} if t[2]==20 {TLoeschen2 (20); var.Anzeige[o] =10;} if t[2]==30 {TLoeschen2 (30); var.Anzeige[o] =0;Licht ();} if t[2]==40 {TLoeschen2 (40); var.Anzeige[o] =0;Filter ();} if t[2]==50 {TLoeschen2 (50); var.Anzeige[o] =0;Solar ();} if t[2]==60 {screen[o] =1; var.Anzeige[o] =9;} if t[2]==171 {var.LichtSw = 1;pcf8583.writebyte (0x62,var.LichtSw);} // Schwimmbadlicht ein/aus if t[2]==181 {var.LichtSw = 0;pcf8583.writebyte (0x62,var.LichtSw);} if t[2]==172 {var.LichtTe = 1;pcf8583.writebyte (0x63,var.LichtTe);} // Vordachlicht ein/aus if t[2]==182 {var.LichtTe = 0;pcf8583.writebyte (0x63,var.LichtTe);} if t[2]==173 {var.LichtGa = 1;pcf8583.writebyte (0x69,var.LichtGa);} // Gartenlicht ein/aus if t[2]==183 {var.LichtGa = 0;pcf8583.writebyte (0x69,var.LichtGa);} if t[2]==174 {var.Pumpe = 1;pcf8583.writebyte (0x73,var.Pumpe);} // Pumpe ein/aus if t[2]==184 {var.Pumpe = 0;pcf8583.writebyte (0x73,var.Pumpe);} etc......... } //------------------------------------------------------------------------------ }}} while a<255 and a;o=o+1;}} Mfg Heribert | ||
Antwort schreiben Antworten: Re: das edip macht Probleme bzw. ich bin das Problem (von Lizard - 8.06.2006 22:10) Re: das edip macht Probleme bzw. ich bin das Problem (von Heribert - 8.06.2006 22:32) Re: das edip macht Probleme bzw. ich bin das Problem (von Heribert - 9.06.2006 20:56) Re: das edip macht Probleme bzw. ich bin das Problem (von André H. - 11.06.2006 9:16) Re: das edip macht Probleme bzw. ich bin das Problem (von Heribert - 12.06.2006 22:18) Re: das edip macht Probleme bzw. ich bin das Problem (von Heribert - 14.06.2006 9:46) |