Der aktuelle Softwarestand ...
Hallo zusammen,
so sieht im Moment die aktuelle Software aus ...
Programmcode: Anhang anzeigen magierstab_v2_2013-08-10-a_public.bas
... sind bis jetzt "nur" gute 1700 Zeilen.
Die Statemachine zum Sperren/Freigeben des Magierstabes habe ich entfernt weil dort auch die Tastenkombinationen reincodiert sind. Der Stab ist nun also gesichert und ein Diebstahl nutzt nur noch zum Ansehen aber nicht mehr für die Benutzung Rumprobieren am Code lohnt sich auch nicht. Es ist eine 7-stellige Kombination der vorhandenen Tasten. Also vergleichbar mit einer 7-stelligen Octalzahl. Ich sage nur ... viel Spaß beim rumprobieren
Der Debug/Konfigurationsmodus ist auch angefangen. Er wird über den INT0 gestartet und ist damit aus jedem Zustand heraus aufrufbar. Es fehlt aber noch das ""Leben" in diesem Modus.
Die Flash-Benutzung liegt im Moment bei 18%.
Einen Schutz für den Stab habe ich nun auch. Ich habe das zusammengeklebte Rohr aus Hartschaum nun mit Leder überzogen. Es fehlt nur noch die obere Lederfläche. Sieht schon alles recht nett aus
Für die Statusanzeige im Modus5 (Sperren/Entsperren) habe ich nun noch die Modusanzeige blinken lassen. Grundfarbe violett um den Modus anzuzeigen und kurze Aufblitzer in rot oder grün je nachdem ob er gesperrt oder freigegeben ist.
Der Modus0 (Debug) ist nun auch nicht mehr schwarz sondern blitzt immer kurz in rot auf.
Update: Ich hab mal aus Jux mit Modus1 (Flammensimulation) angefangen. Naja ... es flackert ein wenig aber so richtig zufriedenstellend ist es nicht. Immerhin werden 4 Kanäle unabhängig von einander verändert. Da muß noch ne gute Idee her Auf jeden Fall müllt die RND-Funktion den Flash ziemlich voll (von 19% auf 21%)
Update 2: Langsam komme ich einer Lösung näher ...
Das Feintuning des Effektes ist allerdings ne ziemliche Frickelei
Gruß
Dino
Hallo zusammen,
so sieht im Moment die aktuelle Software aus ...
Programmcode: Anhang anzeigen magierstab_v2_2013-08-10-a_public.bas
... sind bis jetzt "nur" gute 1700 Zeilen.
Die Statemachine zum Sperren/Freigeben des Magierstabes habe ich entfernt weil dort auch die Tastenkombinationen reincodiert sind. Der Stab ist nun also gesichert und ein Diebstahl nutzt nur noch zum Ansehen aber nicht mehr für die Benutzung Rumprobieren am Code lohnt sich auch nicht. Es ist eine 7-stellige Kombination der vorhandenen Tasten. Also vergleichbar mit einer 7-stelligen Octalzahl. Ich sage nur ... viel Spaß beim rumprobieren
Der Debug/Konfigurationsmodus ist auch angefangen. Er wird über den INT0 gestartet und ist damit aus jedem Zustand heraus aufrufbar. Es fehlt aber noch das ""Leben" in diesem Modus.
Die Flash-Benutzung liegt im Moment bei 18%.
Einen Schutz für den Stab habe ich nun auch. Ich habe das zusammengeklebte Rohr aus Hartschaum nun mit Leder überzogen. Es fehlt nur noch die obere Lederfläche. Sieht schon alles recht nett aus
Für die Statusanzeige im Modus5 (Sperren/Entsperren) habe ich nun noch die Modusanzeige blinken lassen. Grundfarbe violett um den Modus anzuzeigen und kurze Aufblitzer in rot oder grün je nachdem ob er gesperrt oder freigegeben ist.
Der Modus0 (Debug) ist nun auch nicht mehr schwarz sondern blitzt immer kurz in rot auf.
Update: Ich hab mal aus Jux mit Modus1 (Flammensimulation) angefangen. Naja ... es flackert ein wenig aber so richtig zufriedenstellend ist es nicht. Immerhin werden 4 Kanäle unabhängig von einander verändert. Da muß noch ne gute Idee her Auf jeden Fall müllt die RND-Funktion den Flash ziemlich voll (von 19% auf 21%)
Update 2: Langsam komme ich einer Lösung näher ...
Code:
' ################################################################### # ###
' ################################################################### ## ###
' ################################################################### # # ###
' ##### Modusschleife 1 Start ####################################### # ###
' ################################################################### # ###
' ##### rot ######################################################### # ###
' ################################################################### ### ###
' ##### Feuer/Wasser-Simulation ##################################### ###
Mode1_mainloop:
Pwm_ws1 = 0 ' Alles dunkel machen
Pwm_ws2 = 0 ' alle weissen Kanaele versorgen
Pwm_ws3 = 0
Pwm_rt1 = 100 ' alle roten Kanaele versorgen
Pwm_rt2 = 100
Pwm_gn1 = 100 ' alle gruenen Kanaele versorgen
Pwm_gn2 = 100
Pwm_bl1 = 0 ' alle blauen Kanaele versorgen
Pwm_bl2 = 0
Pwm_bl3 = 0
Delay_cnt = 0 ' Zeitteiler auf 0 (Modus-Blinken)
Fire_dir = 0 ' Dimm-Richtungs-Flag (0=Add , 4=Sub)
Do
If Dimmstep_flag = 1 Then ' Timer1-ISR wurde aktiviert
Dimmstep_flag = 0 ' Flag zuruecksetzen
'
Incr Delay_cnt ' Zeitteiler erhoehen
If Delay_cnt = 4 Then ' Zeitteiler Maxwert
Delay_cnt = 0 ' Zeitteiler wieder auf 0
Fire_dif = Rnd(10) ' 0..9 Dimm-Differenz auswuerfeln
Fire_col = Rnd(4) ' 0..3 Farbkanal auswuerfeln
If Fire_dif > 8 Then ' Add/Sub seltener wechseln
' If Fire_col > 2 Then
Fire_dir = Fire_dir + 4 ' Add/Sub toggeln
' End If
End If
If Fire_dir > 4 Then Fire_dir = 0 ' 0 = Add , 4 = Sub , Wert bereinigen
Fire_col = Fire_col + Fire_dir ' Farbkanal mit Add/Sub addieren
Select Case Fire_col ' Farbkanal und Add/Sub auswaehlen
Case 0 ' 0..3 = Differenz zum Kanal addieren
Pwm_rt1 = Pwm_rt1 + Fire_dif
Case 1
Pwm_rt2 = Pwm_rt2 + Fire_dif
Case 2
Pwm_gn1 = Pwm_gn1 + Fire_dif
Case 3
Pwm_gn1 = Pwm_gn1 + Fire_dif
Case 4 ' 4..7 = Differenz vom Kanal subtrahieren
Pwm_rt1 = Pwm_rt1 - Fire_dif
Case 5
Pwm_rt2 = Pwm_rt2 - Fire_dif
Case 6
Pwm_gn1 = Pwm_gn1 - Fire_dif
Case 7
Pwm_gn1 = Pwm_gn1 - Fire_dif
End Select
End If
If Pwm_rt1 < 100 Then Pwm_rt1 = 100 ' Rot Minimum begrenzen
If Pwm_rt2 < 100 Then Pwm_rt2 = 100
If Pwm_gn1 < 30 Then Pwm_gn1 = 30 ' Gruen Minimum begrenzen
If Pwm_gn2 < 30 Then Pwm_gn2 = 30
If Pwm_rt1 > 245 Then Pwm_rt1 = 245 ' Rot Maximum begrenzen
If Pwm_rt2 > 245 Then Pwm_rt2 = 245
If Pwm_gn1 > 150 Then Pwm_gn1 = 150 ' Gruen Maximum begrenzen
If Pwm_gn2 > 150 Then Pwm_gn2 = 150
' ====== MODUS ======
If Tast_mode = 0 Then
Pwm_ws1 = 0 ' Alles dunkel machen
Pwm_ws2 = 0 ' alle weissen Kanaele versorgen
Pwm_ws3 = 0
Pwm_rt1 = 0 ' alle roten Kanaele versorgen
Pwm_rt2 = 0
Pwm_gn1 = 0 ' alle gruenen Kanaele versorgen
Pwm_gn2 = 0
Pwm_bl1 = 0 ' alle blauen Kanaele versorgen
Pwm_bl2 = 0
Pwm_bl3 = 0
Gosub Mode_select ' Taste gedrueckt
End If
Gosub Akku_mess ' Akkuspannungsmessung und Anzeige
End If
If Modus <> 1 Then
Locate 1 , 8 ' LCD saeubern
Lcd " "
Return ' Modus verlassen
End If
Loop
' #############################################################################
' #############################################################################
' ##### Modusschleife 1 Ende ##################################################
' #############################################################################
' #############################################################################
Gruß
Dino