Re: Riesen Probem mit CCII Kategorie: Verschiedenes (von wema - 21.01.2008 0:09) | |
Als Antwort auf Riesen Probem mit CCII von Gregor - 20.01.2008 18:11
| |
> > > > [code] > thread beep > { > int d; > plm.settimebase(0,plm.BASE_800); > plm.setmode(0,0); > plm.setperiod(0,25000); > ports.set(8,-1); > loop > { > for d=1000...2750 step 20 > { > plm.out(0,d); > sleep 10; > } > for d=0...1750 step 20 > { > plm.out(0,2750-d); > sleep 10; > } > } > } > > > thread main > { > ports.set(8,-1); > hwcom.init(); > hwcom.setspeed(hwcom.SPEED_9600); > hwcom.print("HWCOM"); > ports.set(8,0); > ports.set(8,-1); > ports.set(8,0); > ports.set(8,-1); > ports.set(8,0); > run beep; > } > [/code] Hallo, wenn ich mir Deinen Code so ansehe, frage ich mich, ob er wirklich so geplant ist: Du wei�t, das ein MAIN-Thread immer wieder in einer schleife ausgeführt wird, wenn Du ihn nicht vorher mit dem HALT-Befehl anhälst !? Bei Deinem Code hei�t dies, das sämtliche Befehle innerhalb der geschweiften Klammern erneut aufgerufen werden. Die HWCOM-Befehle ebenso wie die sehr schnelle Folge von PORTS.SET. Ist dies wirklich so gedacht? Au�erdem wird mit jedem erneuten durchlaufen auch der Task "Beep" unnötigerweise mit RUN "gestartet" (ich wei�, nicht wirklich gestartet, sondern nur die Priorität gesetzt), aber eben auch unnötigerweise, den innerhalb des PEEP-Threads ist eine LOOP-Schleife, welche eben niemals endet! Mein Programm-Vorschlag: function beep() { int d; ports.set(8,-1); loop { for d=1000...2750 step 20 { plm.out(0,d); sleep 10; } for d=0...1750 step 20 { plm.out(0,2750-d); sleep 10; } } } thread main { plm.settimebase(0,plm.BASE_800); plm.setmode(0,0); plm.setperiod(0,25000); ports.set(8,-1); hwcom.init(); hwcom.setspeed(hwcom.SPEED_9600); hwcom.print("HWCOM"); ports.set(8,0); sleep (500); ports.set(8,-1); sleep (500); ports.set(8,0); sleep (500); ports.set(8,-1); sleep (500); ports.set(8,0); beep(); halt; } Ich hoffe, ich haben keinen Programmierfehler gemacht, da der Code nicht getestet wurde, sondern nur hier so abgetippt. Aber als Anleitung sollte er Dir helfen. Viel Erfolg, wema | |
Antwort schreiben Antworten: |