Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Moin,moin > > ich hatte das gleiche Problem wie Du, ich habe einfach das programm menu_demo abgeändert > ich hoffe wes läuft so auch bei Dir. (Ich benutze die neue lcdext.c2 aus dem > Bereich Module&Funktionen). > > > /* > DATEI > menudemo.c2 > > BESCHREIBUNG > Menusteuerung fuer externes 2-Zeilen Display mit 3 Threads. > > Zur Laufzeit wird ein automatisches Display ausgegeben. > > Wird die (*) Taste gedrueckt, so wird das Autodisplay gestoppt und man kommt in > einen Menumodus. Man kann beliebig viele Untermenus (z.B. ueber Konstanten er- > zeugen. > > Durch Druecken der (*) Taste kann man ein Menu durchblaettern (einfach ver- > zeigert). > Durch Druecken der (#) Taste erreicht man (falls definiert) das Untermenu des > Menupunktes, in dem man sich befindet. > Durch Druecken der (#) Taste im letzten Menupunkt eines Menus kommt man wieder > in das darueberliegende Menu. > Durch Druecken der (#) Taste im letzten Menupunkt des Menus 0 faengt der > Thread Autodisplay wieder an zu laufen ... > > AUTOR > Bernd Schmidt (25.10.2002) > */ > > > byte flag; // Semaphore: Gueltig fuer alle Prozesse > > const MENU_DEPTH0_LEN = 7; > const MENU_DEPTH1_LEN = 3; > const MENU_DEPTH2_LEN = 3; > const MENU_DEPTH3_LEN = 3; > > const SPACE5=" "; > const Menu="Menu "; > const Punkt="Punkt "; > int pos; // Globale Variable fuer Menuposition !!! > int initmenu; // Wird 1, wenn Menu durch Benutzer aktiviert > int dpyam; // Semaphore: Autodisplay wird dargestellt ? > string s; > > function display_menu (int depth, byte resetpos) returns int > { > int goto_depth; > dpyam = 0; > if (resetpos!=0) pos = 0; > lcdext.home(); > if (depth==0) // Menu oben > { > pos=pos+1; if (pos > MENU_DEPTH0_LEN) pos = 1; > if (pos==1) > { s=SPACE5 + Menu + "0" + SPACE5; > lcdext.print(s); lcdext.line(2); > s=SPACE5 + Punkt + "1" + SPACE5; > lcdext.print(s); goto_depth = 1; } > else if (pos==2) > { s=SPACE5 + Menu + "0" + SPACE5; > lcdext.print(s); lcdext.line(2); > s=SPACE5 + Punkt + "2" + SPACE5; > lcdext.print(s); goto_depth = 2; } > else if (pos==3) > { s=SPACE5 + Menu + "0" + SPACE5; > lcdext.print(s); lcdext.line(2); > s=SPACE5 + Punkt + "3" + SPACE5; > lcdext.print(s); goto_depth = 3; } > else if (pos==4) > { s=SPACE5 + Menu + "0" + SPACE5; > lcdext.print(s); lcdext.line(2); > s=SPACE5 + Punkt + "4" + SPACE5; > lcdext.print(s); goto_depth = 4; } > else if (pos==5) > { s=SPACE5 + Menu + "0" + SPACE5; > lcdext.print(s); lcdext.line(2); > s=SPACE5 + Punkt + "5" + SPACE5; > lcdext.print(s); goto_depth = 5; } > else if (pos==6) > { s=SPACE5 + Menu + "0" + SPACE5; > lcdext.print(s); lcdext.line(2); > s=SPACE5 + Punkt + "6" + SPACE5; > lcdext.print(s); goto_depth = 6; } > else if (pos==7) > { s=SPACE5 + Menu + "0" + SPACE5; > lcdext.print(s); lcdext.line(2); > s=" verlassen "; > lcdext.print(s); goto_depth = 999; } > sleep 120; > } > else if (depth==1) { // Menu 0 / Punkt 1 (# druecken)-> Menu 1 / Punkt 1 > pos=pos+1; if (pos > MENU_DEPTH1_LEN) pos = 1; > if (pos==1) > { s=SPACE5 + Menu + "1" + SPACE5; > lcdext.print(s); lcdext.line(2); > s=SPACE5 + Punkt + "1" + SPACE5; > lcdext.print(s); goto_depth = 11; } > else if (pos==2) > { s=SPACE5 + Menu + "1" + SPACE5; > lcdext.print(s); lcdext.line(2); > s=SPACE5 + Punkt + "2" + SPACE5; > lcdext.print(s); goto_depth = 12; } > else if (pos==3) > { s=SPACE5 + Menu + "1" + SPACE5; > lcdext.print(s); lcdext.line(2); > s=" zurueck "; > lcdext.print(s); goto_depth = 0; } > sleep 120; > } > else if (depth==2) {} > else if (depth==3) {} // ... > > return goto_depth; > } > > > > > > thread autodisplay > { > lcdext.clear(); > s=" Autodisplay "; > lcdext.print(s); lcdext.line(2); > s=SPACE5 + Punkt + "1" + SPACE5; > lcdext.print(s); > sleep 2500; > lcdext.clear(); > s=" Autodisplay "; > lcdext.print(s); lcdext.line(2); > s=SPACE5 + Punkt + "2" + SPACE5; > lcdext.print(s); > sleep 2500; > lcdext.clear(); > s=" Autodisplay "; > lcdext.print(s); lcdext.line(2); > s=SPACE5 + Punkt + "3" + SPACE5; > lcdext.print(s); > sleep 2500; > > // ... > } > > thread menu > { > string dpy; > int key; > int depth; > int goto_depth; > > key = keyboard.getkey(); > if (key != -1) // Taste wurde gedrueckt > { > dpyam = 0; > halt autodisplay; > capture flag; > if (key==10) // [*] : Menu blaettern > { > goto_depth = display_menu(depth, 0); > } > else if (key==11) // [#] : Menu Enter > { > depth = goto_depth; > if (depth==999) > { > dpyam = 1; > sleep 200; lcdext.clear(); > pos = 0; depth = 0; > reset autodisplay; > resume autodisplay; > reset; > yield; > } > else if (initmenu==0) { > goto_depth = display_menu(depth, 0); > initmenu = 1; > } > else goto_depth = display_menu(depth, 1); > } > release; > } > } > > > > thread main > { > lcdext.init(); > lcdext.clear(); > sleep(2000); > s=" Menudemo 1.0 "; > lcdext.print(s); > lcdext.line(2); > s="*=weiter #=enter"; > lcdext.print(s); > sleep 5000; > dpyam = 1; > > loop > { > if (dpyam==1) { run autodisplay; } > run menu; > } > } > > > > Hallo > > > > Vorweg ich bin ein Neueinsteiger und benutze die C-Control II Unit und das CC2-Application Board. > > Als BEtriebssystem nutze ich die Version 2 von eurer Seite hier. > > Ich würde gern mal wissen wie ich Zeichen auf dem externen Display ausgeben kann, > das beim Application Board mitgeliefert > > wurde. Wenn ich die Beispielprogramme ausführe, die angeblich das externe Display > ansprechen sollten, dann ist > > dies leider nicht der Fall. Könnt ihr mir helfen? > > > > Grüße