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

das edip macht Probleme bzw. ich bin das Problem Kategorie: Programmierung (von Heribert - 8.06.2006 18:31)
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-ReglerBoard, eigenes Board, OSOPT V3.1
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)