Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Tiptastensteuerung für LEDs und PWM Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Andreas - 31.03.2009 14:54)
 Als Antwort auf Re: Tiptastensteuerung für LEDs und PWM von GeKü - 25.03.2009 20:19
Andreas nutzt:  Open-Micro, Open-Mini
Mal vorweg, Die Seite von ManfredW ist eine echte Hilfe beim Verstehen von allen Mögliche Dingen. Super!

@ GeKü: Die Timer gehen in der Testumgebung aber nicht. Laut Doku ist die Syntax für Timer genau anders rum, also "Variable = Timer". Die Variable muss also noch definiert werden.

also Beispielsweise:
define x byte             ' Timervariable
x = timer                  ' setzt Timerzeit auf 0, Timer zählt automatisch hoch
if x < 200 then goto ...

manchmal muss man einfach länger drüber knobeln :-)

auch die Gosubs sind in diesem Programm nicht die bessere Lösung, da meist an eine andere Stelle gesprungen wird. In Deinem Beispiel würde die Funktion sein: wenn taste1 = 0 ist dann gosub #rauf. In der Subroutine #rauf sind aber zwei verschieden Sprungziele enthalten, sodass es kein Return gibt. Ich glaube, dass das nicht so schick ist. Auch die nachfolgend angesprungene Subroutine zeigt im Endziel nicht auf den Ursprung. Also doch besser goto an Stelle gosub.

#rauf
blank = on                 ' schaltet die beiden äußersten LEDs auf halbe Helligkeit
pause 5                    ' Schalterentprellung
if a = 7 then goto start1  ' Wenn der Zähler = 7 ist wird das Unterprogramm verlassen
a = a + 1                  ' Erhöhung des Zählers um 1
goto anzeige               ' springt in das Unterprogramm Anzeige

#anzeige
if a = 1 then led1 = on    ' LED1 an
if a = 1 then tmp = 0      ' PWM Port 0%
...
if a = 8 then led8 = on    ' LED8 an
if a = 8 then tmp = 250    ' PWM Port 100%
pwm1 tmp                   ' Datenzuweisung PWM-Port1
goto start1                ' Rücksprung in das Hauptprogramm start1


> Hallo,
> z.B.
> #start
> Timer=0          'setzt Timerzeit auf 0 (glaube das dies geht)
> #start1
> pwm1 tmp                                   ' Datenzuweisung PWM-Port1
> if Taste1 = (not Taste1) then gosub rauf   ' Taste rauf erhöht Zähler um 1
> if Taste2 = (not Taste2) then gosub runter ' Taste runter verringert Zähler um 1
> if timer< 100 then goto #start1 ' Timer=100 ca 2000 ms=2 Sekunden
> allleds_a = 0
> allleds_b = 0
> blank = 0
> goto start                                 ' Rücksprung zum Start
>
> Gruß, GeKü
>
>
> **********
>
>

 Antwort schreiben

Bisherige Antworten: