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

edip 240 Kategorie: Programmierung (von Heribert - 5.06.2006 20:20)
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-ReglerBoard, eigenes Board, OSOPT V3.1
Hallo ,

hmm ich probiere gerade mehrere edip über ein thread anzusteuern. Bisher habe ich für jedes edip ein
eigenes thread gestartet. Aber ich bekomme es nicht ans rennen.

mal ein kleiner Auszug über die Ansteuerung eines Displays.

 
edip.RxBuffer Display1;

thread start
{byte i,a,x;
 
 string s,l;
 display=32;    // Display-Adresse
 var.Anzeige   =9 ;
 edip.enableScreen (display,1);
 edip.setLight (display,1);
 run schaltuhr.timer;
 edip.dimmLight(display, 50);
 edip.setCursor(display, 0);
 edip.enableTerminal(display,1);
 edip.clrScreen(0);
 edip.FF(0);
 edip.setTouchKeyAction (display,1,1);
 byte t[24];

 

 
 int r;

 loop
 {
  timedate(s);

  if second!=system.second() {edip.setFont (display,3);sleep 50;
                              edip.setTextMode(display,5);sleep 50;
                              edip.text(display,0,26,2,s);
                              second=system.second(); }
  r=edip.receiveframe(display,Display1);

     
     if var.Anzeige ==1 anzeige.Kist (display);
     else
     if var.Anzeige ==2 anzeige.Sist (display);
     else
     if var.Anzeige ==3 anzeige.SWist (display);
     else
     if var.Anzeige ==4 ;
     else
     if var.Anzeige ==5 anzeige.ASollIstK (display);
     else
     if var.Anzeige ==6 anzeige.betrieb (display);
     else
     if var.Anzeige ==7 anzeige.oel (display);
     else
     if var.Anzeige ==9 anzeige.ver (display);
     
     
    if var.DspFlag == 0    {edip.setLight (display,0);edip.setTouchFrame (display,0);
                            edip.areaClear (display,0,0,240,128);edip.touchKey (display,0,0,190,120,5,0,0,"");
                            edip.enableScreen (display,0);var.DspFlag =0xFF;}
   
    do
  {a=edip.getRxData(Display1,t);
   

  if a<255 and a
  {if t[0]=='A'
    {reset schaltuhr.timer;run schaltuhr.timer;
     if t[2]==5  {edip.removeTouch(display,5,1);
                  var.Anzeige =9;edip.enableScreen (display,1);
                  edip.setLight (display,1);}
     
     if t[2]==20 {TLoeschen (20);UMenue (2,21,22,23,21); var.Anzeige =1;}
     if t[2]==21 {TLoeschen (20);UMenue (2,21,22,23,21); var.Anzeige =1;}

     if t[2]==22 {TLoeschen (20);edip.runMakro (display,3);UMenue (0,21,22,23,22); var.Anzeige =0;}

etc.........

 }}} while a<255 and a;}}



folgendes habe ich mal probiert ab es geht so leider nicht.

 

edip.RxBuffer Display[2];

thread start
{byte i,a,x,o;
string s,l;
 run schaltuhr.timer;
 for o=0...1
 
 {display=32+o;    // Display-Adresse
 var.Anzeige[o]   =9 ;
 edip.enableScreen (display,1);
 edip.setLight (display,1);
 
 edip.dimmLight(display, 50);
 edip.setCursor(display, 0);
 edip.enableTerminal(display,1);
 edip.clrScreen(display);
 edip.FF(display);
 edip.setTouchKeyAction (display,1,1);}
 
 byte t[24];

 

 
 int r;

 loop
 {for o=0...1
   
  {display=32+o;
   timedate(s);

  if second!=system.second() {edip.setFont (display,3);sleep 50;
                              edip.setTextMode(display,5);sleep 50;
                              edip.text(display,0,26,2,s);
                              second=system.second(); }
  r=edip.receiveframe(display,Display[o]);
 
     if var.Anzeige[o] ==1 anzeige.Kist (display);
     else
     if var.Anzeige[o] ==2 anzeige.Sist (display);
     else
     if var.Anzeige[o] ==3 anzeige.SWist (display);
     else
     if var.Anzeige[o] ==4 ;
     else
     if var.Anzeige[o] ==5 anzeige.ASollIstK (display);
     else
     if var.Anzeige[o] ==6 anzeige.betrieb (display);
     else
     if var.Anzeige[o] ==7 anzeige.oel (display);
     else
     if var.Anzeige[o] ==9 {anzeige.ver (display);var.Anzeige[o] =0;}
     
     
    if var.DspFlag[o] == 0    {edip.setLight (display,0);edip.setTouchFrame (display,0);
                               edip.areaClear (display,0,0,240,128);edip.touchKey (display,0,0,190,120,5,0,0,"");
                               edip.enableScreen (display,0);var.DspFlag[o] =0xFF;}

       

     do
  {
  a=edip.getRxData(Display[o],t);
 
  if a<255 and a
 
 
  {
     if t[0]=='A'
    {reset schaltuhr.timer;run schaltuhr.timer;
     if t[2]==5  {edip.removeTouch(display,5,1);
                  var.Anzeige[o] =9;edip.enableScreen (display,1);
                  edip.setLight (display,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.........

}}} while a<255 and a;}}}



Hat event. jemand einen Tipp für mich.

Mfg

Heribert


    Antwort schreiben


Antworten:

Re: edip 240 (von Heribert - 8.06.2006 9:12)