edip defekt? Kategorie: I²C-Bus (von Roman S - 5.03.2011 0:18) | ||
| ||
Hallo zusammen Als ich heute Abend mein Touchmenü erweitern wollte, konnte ich plötzlich keine Eingaben am edip mehr machen. Die Switch- & Key-buttons wechslen zwar auf Fingerdruck die Farbe, aber das edip scheint keine Daten mehr an die C-Control mehr zu senden?! Die Ausgaben funktionieren wunderbar. Ein älteres Testprogramm (siehe Quellcode) hat auch nicht den gewünschten Erfolg gebracht. Das edip steckt auf dem compactboard von Andre und ist mittels I2C mit der C-control verbunden. Wo könnte das Problem liegen? //-------------------- thread waithost// Thread vom main-thread aus starten //----------------------- { hwcom.init(); hwcom.setspeed(8); loop { wait hwcom.rxd(); if hwcom.get()==254 { wait hwcom.rxd(); if hwcom.get()==254 quit 1;// Hostmode einleiten } hwcom.flush(); } } //---------------------------------------------------------------------------- const edipAddr = 0; int r; byte a,t[24]; string s; edip.RxBuffer Display1; //------------------------------------------------------------------------------ function Submenue() //------------------------------------------------------------------------------ { edip.removeTouch(edipAddr,4,1);//Entfernt Button mit dem code 4 edip.setFont(edipAddr,3); edip.setTextMode(edipAddr,3); edip.text(edipAddr,0,75,35,"Messprogramme"); edip.text(edipAddr,0,200,35,"Bitte Ausw132hlen"); edip.setTouchKeyAction(edipAddr,1,0); edip.touchKey(edipAddr,10,80,110,95,0,1,1,"test"); edip.touchKey(edipAddr,125,80,225,95,0,2,1,"test1"); edip.touchKey(edipAddr,68,105,168,120,0,3,1,"zur129ck"); loop { r=edip.receiveframe(edipAddr,Display1); a=edip.getRxData(Display1,t); if a<255 and a { if t[2]==3 { return; } } } } //------------------------------------------------------------------------------ function hauptmenue() //------------------------------------------------------------------------------ { int b,l; b=0; l=1; edip.removeTouch(edipAddr,0,1); edip.setFont(edipAddr,3); edip.setTextMode(edipAddr,3); edip.setTouchKeyAction(edipAddr,1,0); edip.touchSwitch(edipAddr,50,111,200,150,2,3,1,"dimmen"); edip.touchKey(edipAddr,20,50,100,100,6,7,1,"frosch"); edip.touchKey(edipAddr,400,111,500,150,4,5,1,"blabla"); loop { r=edip.receiveframe(edipAddr,Display1); a=edip.getRxData(Display1,t); if a<255 and a { if t[2]==3 { edip.println(edipAddr, "gedrueckt 3"); max7311.set(9,4,1); max7311.set(8,4,1); } if t[2]==2 { edip.println(edipAddr, "gedrueckt 2"); max7311.set(9,4,0); max7311.set(8,4,0); } if t[2]==5 { if l==0 { //edip.setLight(edipAddr,1); //edip.enableScreen(edipAddr,1); edip.dimmLight(edipAddr,255); l=1; continue; } if l==1 { //edip.setLight(edipAddr,1); //edip.enableScreen(edipAddr,1); edip.dimmLight(edipAddr,255); l=0; continue; } } } } } //------------------------------------------------------------------------------ function start() //------------------------------------------------------------------------------ { edip.setCursor(edipAddr,0); edip.enableTerminal(edipAddr,1); edip.removeTouch(edipAddr,0,1); edip.clrScreen(edipAddr); edip.FF(edipAddr); edip.loadBitmap(edipAddr,11,20,1); sleep 2500; } //------------------------------------------------------------------------------ thread main //------------------------------------------------------------------------------ { run waithost; ediptest.start(); max7311.setw(8,0); //Augangsregister aller 16 Ports auf low setzen max7311.setDDRw(8,0); // Alle Ports als Ausgang max7311.setw(9,0); //Ausgangsregister aller 16 Ports auf low setzen max7311.setDDRw(9,0); // Alle Ports als Ausgang loop { ediptest.hauptmenue(); }} | ||
Antwort schreiben Antworten: Re: edip defekt? (von Roman S - 5.03.2011 11:53) |