
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Carsten, Danke für den Tip. Markus > Hallo, so wie ich das sehe, stört Dich ja nur, daß Du während des wait - Befehls die Tastatur nicht bedienen kannst (Das Programm "steht" ja nicht wirklich). Also entweder Du benutzt den Interrupt - Eingang für den "Reflextaster" und schreibst eine Interrupt - Routine (wahrscheinlich das Einfachste, siehe Beispiele), oder Du fragst zyklisch den Taster und die Tastatur ab: > > #zaehler > #loop > if reflextaster = inaktiverZustand then goto weiter > a= a + 1 > > pause 1 'Prellen und Mehrfachzählung des gleichen Impulses verhindern > #loop1 > if reflextaster = aktiverZustand then goto loop1 > return > > #weiter > gosub keydecode > if keycode = wasDuWillst then return 'Rücksprung wegen Tastaturbetätigung > goto loop > > > > Hallo zusammen, > > > > Ich habe ein kleines Problem mit dem unten geschriebenen Programmabschnitt und hoffe ihr könnt mir dabei helfen. Es geht um mein Photovoltaikprojekt, welches ich hier schon mal gepostet habe. Und Dank der Hilfe von "Joe" habe ich mir einen Sensor gebastelt, der auf den Stromzähler geklebt wird und die Zählerscheibe auswertet. Bei jeder Umdrehung bzw. Unterbrechnung durch den roten Strich der Scheibe bekomme ich einen Impuls. Das Problem liegt jetzt beim dem Befehl "wait". Wenn der Sensor nicht vom roten Strich unterbrochen wird bleib mein Programm stehen, weil er ja auf das Signal wartet. Gibt es noch eine andere Alternative zum wait Befehl? > > > > > > #aufzeichnen > > print "#CLR#"; > > print "#L101#";:print "Impulse: 0 "; > > > > #aufzeichnen_weiter > > print "#L101#";:print "Impulse: ";a; > > oldsec=second > > 'Uhrzeit und Datum > > print"#L201#";:if HOUR<10 then print"0";:print HOUR;:print":"; > > if MINUTE<10 then print"0";:print MINUTE;:print":"; > > if SECOND<10 then print"0";:print SECOND;:print" "; > > if day<10 then print"0";:print DAY;:PRINT"."; > > if month<10 then print"0";:print MONTH;:print"."; > > > > if (not reflextaster) then gosub zaehler > > gosub keydecode > > if keycode = 10 then goto menue > > goto aufzeichnen_weiter > > > > #zaehler > > wait (reflextaster) ' wird benötigt, das nur bei abfallender Flanke ein Impuls gesendet wird > > if (reflextaster) then a = a+1 > > return > > > > Vorab schon mal vielen Dank und noch ein schönes Wochenende > > Gruß Markus > > > |
| Antwort schreiben |