Programm Codes für Atmel Controller

Fragen zu Schaltungen, Elektronik, Elektrik usw.

Moderator: T.Hoffmann

Antworten
Benutzeravatar
Jay
Hyper-User
Hyper-User
Beiträge: 1096
Registriert: Mo, 08.05.06, 07:54
Wohnort: Österreich

Sa, 27.01.07, 22:58

hier können wir mal einfache codes für atmel controller sammeln.

ich mach schon mal ein kleinen anfang mit

Code: Alles auswählen

'Nightrider Lauflicht mit 8 LEDs
'erstellt von Jay
'am 27.01.2007
'für ATmega8

$regfile = "m8def.dat"                                      'ATmega8

$crystal = 1000000

'Konfigurieren
'============================================================================='
Config Pind.0 = Output                                      'Port D0
Config Pind.1 = Output                                      'Port D1
Config Pind.2 = Output                                      'Port D2
Config Pind.3 = Output                                      'Port D3
Config Pind.4 = Output                                      'Port D4
Config Pind.5 = Output                                      'Port D5
Config Pind.6 = Output                                      'Port D6
Config Pind.7 = Output                                      'Port D7
'============================================================================='

'Ports zu den LEDs zuweisen
'============================================================================='
Led1 Alias Portd.0
Led2 Alias Portd.1
Led3 Alias Portd.2
Led4 Alias Portd.3
Led5 Alias Portd.4
Led6 Alias Portd.5
Led7 Alias Portd.6
Led8 Alias Portd.7
'============================================================================='

Dim Zaehler As Long                                         'Zähler von 1-9
Dim Richtung As Long                                        'Richtung 0 oder 1

Zaehler = 9
Richtung = 1


Do

If Richtung = 1 Then                                        'Prüfen welche richtung laufen soll
Zaehler = Zaehler - 1
If Zaehler = 1 Then Richtung = 0                            'setzt richtung 0 wenn Zähler 1 ist
Else
Zaehler = Zaehler + 1
If Zaehler = 8 Then Richtung = 1                            'setzt richtung 1 wenn Zähler 8 ist
End If

If Zaehler = 1 Then Led1 = 1 Else Led1 = 0
If Zaehler = 2 Then Led2 = 1 Else Led2 = 0
If Zaehler = 3 Then Led3 = 1 Else Led3 = 0
If Zaehler = 4 Then Led4 = 1 Else Led4 = 0
If Zaehler = 5 Then Led5 = 1 Else Led5 = 0
If Zaehler = 6 Then Led6 = 1 Else Led6 = 0
If Zaehler = 7 Then Led7 = 1 Else Led7 = 0
If Zaehler = 8 Then Led8 = 1 Else Led8 = 0

Waitms 150                                                  'Laufzeit von LED zu LED

Loop
<center>
526_nightrider_1.png
526_nightrider_1.png (188.67 KiB) 15672 mal betrachtet
</center>

EDIT: Ich hab schon immer eine einfache Lösung gesucht ein Nightrider Lauflicht zu bastelln, aber nur mit mehrer bauteilen gefunden, so geht viel einfacher.

MfG
Jay
Zuletzt geändert von Jay am Sa, 27.01.07, 23:55, insgesamt 1-mal geändert.
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Sa, 27.01.07, 23:32

Jou...da bin ich auch dafür...nur sollte man eine kleine Erklärung dazu abgeben, was das Proggy kann und warum bzw. wofür man dieses Geschrieben hat.

Entweder im Code oder separat.


Habe da auch eines Geschrieben...allerdings ist dieses Programm sehr groß...und ich Denke mal, das es für dieses Topic zuuuuu lang sein würde.

Geschrieben für eine 9x9 Matrix in der dann + und - Geschaltet werden.

Hier hinter diesem Link habe ich ein Video gestellt, das Video ist ca. 10 MB groß...liegt aber auf einem sehr schnellen Server (ca. 700Kb/s.) an Downstream.

In diesem Video werden 2 komplette Durchgänge des Programmes gezeigt.
Nur Entschuldigt die Qualität...is net soooo dolle... und es ist alles auf meinem Testboard gesteckt und die Matrix habe ich mir auf einer Separaten Platine verwirklicht.


Nu hier der Link:


*******************************************************************

* ----- http://www.lichtpunkt-led.de/Video/Video9x9Matrix.MOV ----- *

*******************************************************************

viel Spaß beim Luschern.
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

So, 28.01.07, 21:53

Hmmm...hat denn noch keiner weiter irgendwelche Proggy´s geschrieben?


Ok...hier mal ein Code für 4 Taster und 4 Ausgängen...

Dieses Programm werde ich für meine Badezimmerschaltung verwenden.

Drückt man Taster1, geht der 1. Ausgang an...drückt man den Taster 1 erneut, geht der Ausgang wieder zurück in die Grundstellung...ebenso funktionieren Taster 2, 3 und 4.

Ich habe mich dazu Entschlossen, weil ich keine 4 normalen Schalter für das Badezimmer haben wollte.

Und die Taster in Edelstahlausführung sein sollten...
Schalter sind mir einfach zu Klobig dafür.


Hier der Code:

Code: Alles auswählen


$regfile = "attiny2313.dat"                                 'definieren des verwendeten Chips Hier ist es ein ATtiny 2313

$crystal = 8000000                                          'definieren des verwendeten externen Quarz (8MHz)

Dim A As Byte                                               'dimensionieren der verwendeten Variablen
Dim B As Byte



$crystal = 1000000

Config Pinb.0 = Input
Config Pinb.1 = Input
Config Pinb.2 = Input
Config Pinb.3 = Input
Config Pinb.4 = Output
Config Pinb.5 = Output
Config Pinb.6 = Output
Config Pinb.7 = Output

Taster1 Alias Pinb.0
Taster2 Alias Pinb.1
Taster3 Alias Pinb.2
Taster4 Alias Pinb.3
Led1 Alias Portb.4
Led2 Alias Portb.5
Led3 Alias Portb.6
Led4 Alias Portb.7




Main:                                                       'Hauptprogramm
Do                                                          'Anfang der Schleife

  If Taster1 = 1 Then                                       'Wenn an Pin 0 von Port B ein high level anliegt, dann...

  Toggle Led1                                               '...setze Pin 5 von Port B von high auf low oder umgekehrt
  Bitwait Taster1 , Reset                                   'warte bis an Pin 0 von Port B wieder ein low level anliegt

  End If

                                                     'Ende der Bedingung


  If Taster2 = 1 Then                                       'Wenn an Pin 1 von Port D ein high level anliegt, dann...

  Toggle Led2                                               '...setze Pin 6 von Port B von high auf low oder umgekehrt
  Bitwait Taster2 , Reset                                   'warte bis an Pin 1 von Port B wieder ein low level anliegt

  End If

                                                    'Ende der Bedingung


  If Taster3 = 1 Then

  Toggle Led3
  Bitwait Taster3 , Reset

  End If




  If Taster4 = 1 Then

  Toggle Led4
  Bitwait Taster4 , Reset

  End If





Loop                                                        'zum Anfang der Schleife



viel Spaß beim nachbauen.
Zuletzt geändert von Andy am Di, 30.01.07, 20:16, insgesamt 1-mal geändert.
Benutzeravatar
Robo9
Mega-User
Mega-User
Beiträge: 148
Registriert: Do, 16.11.06, 09:28
Wohnort: Berlin
Kontaktdaten:

Di, 30.01.07, 07:31

@ Andy
Ich kann das Video nicht abspielen.:cry:
Was ist das den für ein Format? :?:
Mit was spielst du den das ab??? :?:
Benutzeravatar
alexStyles
Auserwählter
Auserwählter
Beiträge: 2333
Registriert: So, 20.08.06, 16:51
Wohnort: Düsseldorf
Kontaktdaten:

Di, 30.01.07, 07:48

Hi Robo
Also Ich habe es mit dem Winamp Player und dem DivX Player und dem Windows Media Player auch probiert ...
(nur um "sicher" zu gehen das es damit nicht klapt)
Mein Standard Player ist der VLC Media Player und damit geht das Video auch :wink:
@Andy Ist aber Ohne Sound ? ? ? oder also bei mir ist zumindest nur "Bild" :P
@Robo
Hier kannst du dir denn VLC Media Player kostenlos runterladen (ist auch Freeware)
VLC Media Player Chip Download

MfG Alex
Benutzeravatar
Mirfaelltkeinerein
Ultra-User
Ultra-User
Beiträge: 748
Registriert: Mi, 25.10.06, 17:52
Wohnort: Südwesten

Di, 30.01.07, 09:42

Das ist Apple Quicktime...
Benutzeravatar
Timm
Mega-User
Mega-User
Beiträge: 387
Registriert: So, 25.06.06, 18:53

Di, 30.01.07, 13:05

@ Andy
Welchen MikroController benützt du eigentlich für deine 9x9er matrix und wieviel Leds hast an einem Ausgang dran?

Edit: Kann den Beitrag jemand unten löschen bei mir tauchte ein fehler aus als ich auf absenden drückte dann hab ich nochma draufgedrückt und der fehler kam wieder jetzt sind halt 2 beiträge da
Zuletzt geändert von Timm am Di, 30.01.07, 13:08, insgesamt 1-mal geändert.
Benutzeravatar
Timm
Mega-User
Mega-User
Beiträge: 387
Registriert: So, 25.06.06, 18:53

Di, 30.01.07, 13:06

- POST LÖSCHEN BITTE -
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Di, 30.01.07, 13:25

Hi...also...die Fragen wurden ja nun schon zum Teil beantwortet...

Aber ich gehe gerne nochmal darauf ein.

Das Video ist eine MOV Datei...
Abspielbar entweder mit VLC oder mit dem Mediaplayer.

An einem Ausgang hängen maximal 9 LED´s, wenn die Matrix alle Ports frei gibt.

Ich habe für die Matrix einen AT Mega 8 verwendet. Würde aber auch mit jedem anderen Controller funzen, der mindestens 18 Ausgänge hat.
Die Programierung habe ich inzwischen noch erweitert, das ich mit einem Taster dann noch diverse Unterprogramme aufrufen kann, die der Controller dann nacheinander abruft und dann abspielt.
Also bräuchte man dafür dann 19 I/O´s.


Wie schon geschrieben, wenn ihr Interesse habt, Poste ich mal mein Programmcode.
(Is halt nur etwas Länger )
Benutzeravatar
Timm
Mega-User
Mega-User
Beiträge: 387
Registriert: So, 25.06.06, 18:53

Di, 30.01.07, 13:28

Ja post mal den Code kannst ja auch in einer Textdatei hochladen :)
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Di, 30.01.07, 15:01

Ok...hier habe ich mal den WAHNSINNS Code für euch bereitgestellt.

Aber auf Eure Verantwortung......

Für Etwaige Schäden an Hard und Software übernehme ich keinerlei Haftung!!!!!!! :wink: :lol:


*************************** Code: *****************************

Code: Alles auswählen


' Dieses ist ein kleines Programm, für eine LED Matrix mit 9x9 LED´s
' Mit Codeauszügen aus dem Lumitronix Forum von Pehu (in diesem Falle nur die Tasterabfrage)
' Auf meine Bedürfnisse zurechtgeschnitten mit selbstgeschriebenen Verzweigungen / Unterprogrammen
' Ich habe es für einen Atmega 8 von Atmel geschrieben
' Dieses Programm beinhaltet diverse Effekte wie Lauflichter, Flashen der LED´s und vieles mehr.
'Ansteuern kann man die Einzelnen Unterprogramme mit einem Taster, wobei wenn man beim 6ten
'Tasterdruck angekommen ist, alle Programierten Muster nacheinander abgerufen werden.




$regfile = "m8def.dat"                                      'definieren des verwendeten Chips Hier ist es ein ATMega8

$crystal = 1250000                                          ' Die Quarzeinstellung / Taktgeschwindigkeit

Config Timer0 = Timer , Prescale = 8                        ' Einstellung des internen Timers hier Timer0 mit einer Prescale (Teilung) von 8
On Ovf0 Tasterpruefen



Enable Timer0                                               ' Timer und Interrupts einschalten

Enable Interrupts
                                                              'Die verwendeten Variablen
Dim Auswahl As Integer
Dim Ol As Bit

Auswahl = 1
                                                               'Pinconfiguration hier alle B und D Pins als Ausgänge
Ddrb = &B11111111
Ddrd = &B11111111
                                                                'Herkömmliche art der Pinconfiguration in diesem Falle C mit einem Eingang und alle anderen als Ausgänge
Config Pinc.1 = Input
Config Pinc.2 = Output                                      'Auch wenn nicht alle Ausgänge Benutzt werden, habe ich diese Configuriert, da er ansonnsten
Config Pinc.3 = Output
Config Pinc.4 = Output                                      'Fehler verursachen würde (bei mir tat er das zumindest)
Config Pinc.5 = Output
Config Pinc.6 = Output
Config Pinc.7 = Output
Config Pinc.0 = Output
                                                               ' für die bessere Übersicht habe ich die Ein und Ausgänge umbenannt
Plus1 Alias Portb.0
Plus2 Alias Portb.1
Plus3 Alias Portb.2
Plus4 Alias Portb.3
Plus5 Alias Portb.4
Plus6 Alias Portb.5
Plus7 Alias Portb.6
Plus8 Alias Portb.7
Plus9 Alias Portc.5
Minus1 Alias Portd.0
Minus2 Alias Portd.1
Minus3 Alias Portd.2
Minus4 Alias Portd.3
Minus5 Alias Portd.4
Minus6 Alias Portd.5
Minus7 Alias Portd.6
Minus8 Alias Portd.7
Minus9 Alias Portc.4

Taster1 Alias Pinc.1
                                                        'Anfang der Schleife
Do

Select Case Auswahl

    Case 1 : Gosub Abschnitt1

    Case 2 : Gosub Abschnitt2

    Case 3 : Gosub Abschnitt3

    Case 4 : Gosub Abschnitt4

    Case 5 : Gosub Abschnitt5

    Case 6 : Gosub Hauptabschnitt

  End Select

Loop

'------------------------------- Tasterabfrage
Tasterpruefen:

If Taster1 = 1 Then

If Auswahl = 6 Then

Auswahl = 1

Else

Auswahl = Auswahl + 1

End If

Waitms 200

End If

Return

'-----------------------------------Ab hier die Verzweigungsprogramme


Abschnitt1:
Gosub Aus
If Ol = 0 Then
Gosub Rotate1
Gosub Pause
Gosub Rotate1
Gosub Pause
Gosub Rotate1
Gosub Flash1
Gosub Flash2
Gosub Flash3
Gosub Flash4
Gosub Flash5
Gosub Rotate1
Gosub Pause
Gosub Rotate1
Gosub Flash5
Gosub Flash4
Gosub Flash3
Gosub Flash2
Gosub Flash1
Gosub Rotate1
Gosub Pause
Gosub Rotate1
Gosub Flash1
Gosub Flash2
Gosub Flash3
Gosub Flash4
Gosub Flash5
Gosub Rotate1
Gosub Pause
Gosub Rotate1
Gosub Flash5
Gosub Flash4
Gosub Flash3
Gosub Flash2
Gosub Flash1
Gosub Pause
Gosub Flash1
Gosub Pause
Gosub Pause
Gosub Flash1
Gosub Pause
Gosub Pause
Gosub Flash2
Gosub Pause
Gosub Pause
Gosub Flash2
Gosub Pause
Gosub Pause
Gosub Flash3
Gosub Pause
Gosub Pause
Gosub Flash3
Gosub Pause
Gosub Pause
Gosub Flash4
Gosub Pause
Gosub Pause
Gosub Flash4
Gosub Pause
Gosub Pause
Gosub Flash5
Gosub Pause
Gosub Pause
Gosub Flash5
Gosub Pause
Gosub Pause
Waitms 5
End If
Gosub Aus
Return

Abschnitt2:
Gosub Aus
If Ol = 0 Then
Gosub Lldown
Gosub Llup
Gosub Lldown
Gosub Llup
Gosub Llrechts
Gosub Lllinks
Gosub Llrechts
Gosub Lllinks
Gosub Lldown
Gosub Lllinks
Gosub Llrechts
Gosub Llup
Gosub Lldown
Gosub Lllinks
Gosub Llrechts
Gosub Llup
Waitms 5
End If
Gosub Aus
Return

Abschnitt3:
Gosub Aus
If Ol = 0 Then
Gosub Allflash
Gosub Pause
Gosub Allflash
Gosub Pause
Gosub Allflash
Gosub Pause
Gosub Lldown
Gosub Effekt1
Gosub Effekt1
Gosub Effekt1
Gosub Effekt2
Gosub Effekt2
Gosub Effekt2
Gosub Effekt3
Gosub Effekt3
Gosub Effekt3
Gosub Rotate1
Gosub Llup
Gosub Rotate1
Gosub Rotate1
Gosub Allflash
Gosub Pause
Gosub Allflash
Gosub Pause
Gosub Allflash
Gosub Pause
Gosub Lauflicht1
Gosub Lauflicht1
Gosub Lauflicht1
Waitms 5
End If
Gosub Aus
Return

Abschnitt4:
Gosub Aus
If Ol = 0 Then
Gosub Flash4
Gosub Pause
Gosub Flash4
Gosub Pause
Gosub Rotate1
Gosub Pause
Gosub Flash3
Gosub Pause
Gosub Flash3
Gosub Pause
Gosub Rotate1
Gosub Flash5
Gosub Pause
Gosub Flash5
Gosub Pause
Gosub Rotate1
Gosub Pause
Waitms 5
End If
Gosub Aus
Return

Abschnitt5:
Gosub Aus
If Ol = 0 Then
Gosub Lauflicht1
Gosub Allflash
Gosub Pause
Gosub Allflash
Gosub Pause
Gosub Allflash
Gosub Pause
Gosub Diamant
Gosub Pause
Gosub Diamant
Gosub Pause
Gosub Diamant
Gosub Pause
Gosub Diamant
Gosub Pause
Gosub Diamant
Gosub Allflash
Gosub Pause
Gosub Allflash
Gosub Pause
Gosub Allflash
Gosub Pause
Waitms 5
End If
Return

Hauptabschnitt:
Gosub An
Gosub Allflash
Gosub Pause
Gosub Allflash
Gosub Pause
Gosub Allflash
Gosub Pause
Gosub Allflash
Gosub Pause
Gosub Allflash
Gosub Pause
Gosub Dia1
Gosub Pause
Gosub Dia1
Gosub Pause
Gosub Dia1
Gosub Pause
Gosub Dia1
Gosub Dia2
Gosub Dia1
Gosub Dia2
Gosub Dia1
Gosub Dia2
Gosub Dia1
Gosub Dia2
Gosub Dia1
Gosub Dia2
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia7
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia7
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia7
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia7
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia7
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia7
Gosub Dia8
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia7
Gosub Dia8
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia7
Gosub Dia8
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia7
Gosub Dia8
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia7
Gosub Dia8
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia7
Gosub Dia8
Gosub Dia9
Gosub Dia1
Gosub Dia2
Gosub Dia3
Gosub Dia4
Gosub Dia5
Gosub Dia6
Gosub Dia7
Gosub Dia8
Gosub Dia9
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia3
Gosub Dia2
Gosub Dia1
Gosub Dia2
Gosub Dia1
Gosub Dia2
Gosub Dia1
Gosub Dia2
Gosub Dia1
Gosub Dia2
Gosub Dia1
Gosub Dia2
Gosub Dia1
Gosub Dia1
Gosub Pause
Gosub Dia1
Gosub Pause
Gosub Dia1
Gosub Pause
Gosub Dia1
Gosub Pause
Gosub Dia1
Gosub Pause
Gosub Dia1
Gosub Pause
Gosub Dia9
Gosub Pause
Gosub Dia9
Gosub Pause
Gosub Dia9
Gosub Pause
Gosub Dia9
Gosub Pause
Gosub Dia9
Gosub Pause
Gosub Dia9
Gosub Pause
Gosub Dia9
Gosub Dia8
Gosub Dia9
Gosub Dia8
Gosub Dia9
Gosub Dia8
Gosub Dia9
Gosub Dia8
Gosub Dia9
Gosub Dia8
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Dia9
Gosub Dia8
Gosub Dia7
Gosub Dia6
Gosub Dia5
Gosub Dia4
Gosub Dia3
Gosub Dia2
Gosub Diamant
Gosub Pause
Gosub Diamant
Gosub Pause
Gosub Diamant
Gosub Pause
Gosub Diamant
Gosub Pause
Gosub Diamant
Gosub Pause
Gosub Diamant
Gosub Pause
Gosub Diamant
Gosub Pause
Gosub Diamant
Gosub Pause
Gosub Diamant
Gosub Pause
Gosub Rotate1
Gosub Pause
Gosub Rotate1
Gosub Pause
Gosub Rotate1
Gosub Pause
Gosub Rotate1
Gosub Pause
Gosub Rotate1
Gosub Pause
Gosub Rotate1
Gosub Pause
Gosub Rotate1
Gosub Pause
Gosub Rotate1
Gosub Pause
Gosub Rotate1
Gosub Flash1
Gosub Flash2
Gosub Flash3
Gosub Flash4
Gosub Flash5
Gosub Rotate1
Gosub Flash1
Gosub Flash2
Gosub Flash3
Gosub Flash4
Gosub Flash5
Gosub Rotate1
Gosub Flash1
Gosub Flash2
Gosub Flash3
Gosub Flash4
Gosub Flash5
Gosub Rotate1
Gosub Rotate1
Gosub Flash5
Gosub Flash4
Gosub Flash3
Gosub Flash2
Gosub Flash1
Gosub Rotate1
Gosub Flash5
Gosub Flash4
Gosub Flash3
Gosub Flash2
Gosub Flash1
Gosub Rotate1
Gosub Flash5
Gosub Flash4
Gosub Flash3
Gosub Flash2
Gosub Flash1
Gosub Rotate1
Gosub Effekt3
Gosub Effekt3
Gosub Effekt3
Gosub Effekt3
Gosub Effekt3
Gosub Lldown
Gosub Lllinks
Gosub Llrechts
Gosub Llup
Gosub Lldown
Gosub Lllinks
Gosub Llrechts
Gosub Llup
Gosub Lldown
Gosub Lllinks
Gosub Llrechts
Gosub Llup
Gosub Lldown
Gosub Lllinks
Gosub Llrechts
Gosub Llup
Gosub Flash1
Gosub Pause
Gosub Pause
Gosub Flash1
Gosub Pause
Gosub Pause
Gosub Flash2
Gosub Pause
Gosub Pause
Gosub Flash2
Gosub Pause
Gosub Pause
Gosub Flash3
Gosub Pause
Gosub Pause
Gosub Flash3
Gosub Pause
Gosub Pause
Gosub Flash4
Gosub Pause
Gosub Pause
Gosub Flash4
Gosub Pause
Gosub Pause
Gosub Flash5
Gosub Pause
Gosub Pause
Gosub Flash5
Gosub Pause
Gosub Pause
Gosub Flash1
Gosub Flash2
Gosub Flash3
Gosub Flash4
Gosub Flash5
Gosub Rotate1
Gosub Flash5
Gosub Flash4
Gosub Flash3
Gosub Flash2
Gosub Flash1
Gosub Rotate1
Gosub Flash1
Gosub Flash2
Gosub Flash3
Gosub Flash4
Gosub Flash5
Gosub Rotate1
Gosub Flash5
Gosub Flash4
Gosub Flash3
Gosub Flash2
Gosub Flash1
Gosub Lldown
Gosub Lllinks
Gosub Llrechts
Gosub Llup
Gosub Effekt1
Gosub Allflash
Gosub Flash1
Gosub Flash2
Gosub Flash3
Gosub Flash4
Gosub Flash5
Gosub Lllinks
Gosub Rotate1
Gosub Flash5
Gosub Flash4
Gosub Flash3
Gosub Flash2
Gosub Flash1
Gosub Rotate1
Gosub Allflash
Gosub Effekt1
Gosub Effekt2
Gosub Effekt3
Gosub Rotate1
Gosub Allflash
Gosub Lauflicht1

'------------------------------------------ Ende Verzweigungsprogramme-------- hier stehen die Unterprogramme ------

'----------------------------Alle LEDs werden Abgeschaltet
Aus:
If Ol = 0 Then
Plus1 = 0
Plus2 = 0
Plus3 = 0
Plus4 = 0
Plus5 = 0
Plus6 = 0
Plus7 = 0
Plus8 = 0
Plus9 = 0
Minus1 = 1
Minus2 = 1
Minus3 = 1
Minus4 = 1
Minus5 = 1
Minus6 = 1
Minus7 = 1
Minus8 = 1
Minus9 = 1
Waitms 10
End If
Return

'----------------------------------Alle LEDs gehen an
An:
Plus1 = 1
Plus2 = 1
Plus3 = 1
Plus4 = 1
Plus5 = 1
Plus6 = 1
Plus7 = 1
Plus8 = 1
Plus9 = 1
Minus1 = 0
Minus2 = 0
Minus3 = 0
Minus4 = 0
Minus5 = 0
Minus6 = 0
Minus7 = 0
Minus8 = 0
Minus9 = 0
Return

'------------------------------------Hier wird eine Pause eingeführt
Pause:
Waitms 30
If Ol = 0 Then
Gosub Aus
Waitms 30
End If
Return

'--------------------------------Alle LEDs Blinken Rhüthmisch
Allflash:
Plus1 = 1
Plus2 = 1
Plus3 = 1
Plus4 = 1
Plus5 = 1
Plus6 = 1
Plus7 = 1
Plus8 = 1
Plus9 = 1
Minus1 = 0
Minus2 = 0
Minus3 = 0
Minus4 = 0
Minus5 = 0
Minus6 = 0
Minus7 = 0
Minus8 = 0
Minus9 = 0
Waitms 250
If Ol = 0 Then
Plus1 = 0
Plus2 = 0
Plus3 = 0
Plus4 = 0
Plus5 = 0
Plus6 = 0
Plus7 = 0
Plus8 = 0
Plus9 = 0
Waitms 250
End If
Gosub Aus
Return

'---------------------- Lauflicht alle LEDs (81 stück) werden der Reihe nach ein und wieder ausgeschaltet
Lauflicht1:
Plus1 = 1
Minus1 = 0
Waitms 10
Plus1 = 0
Plus2 = 1
Waitms 10
Plus2 = 0
Plus3 = 1
Waitms 10
Plus3 = 0
Plus4 = 1
Waitms 10
Plus4 = 0
Plus5 = 1
Waitms 10
Plus5 = 0
Plus6 = 1
Waitms 10
Plus6 = 0
Plus7 = 1
Waitms 10
Plus7 = 0
Plus8 = 1
Waitms 10
Plus8 = 0
Plus9 = 1
Waitms 10
Plus9 = 0
Minus1 = 1
Waitms 10
Plus1 = 1
Minus2 = 0
Waitms 10
Plus1 = 0
Plus2 = 1
Waitms 10
Plus2 = 0
Plus3 = 1
Waitms 10
Plus3 = 0
Plus4 = 1
Waitms 10
Plus4 = 0
Plus5 = 1
Waitms 10
Plus5 = 0
Plus6 = 1
Waitms 10
Plus6 = 0
Plus7 = 1
Waitms 10
Plus7 = 0
Plus8 = 1
Waitms 10
Plus8 = 0
Plus9 = 1
Waitms 10
Plus9 = 0
Minus2 = 1
Waitms 10
Plus1 = 1
Minus3 = 0
Waitms 10
Plus1 = 0
Plus2 = 1
Waitms 10
Plus2 = 0
Plus3 = 1
Waitms 10
Plus3 = 0
Plus4 = 1
Waitms 10
Plus4 = 0
Plus5 = 1
Waitms 10
Plus5 = 0
Plus6 = 1
Waitms 10
Plus6 = 0
Plus7 = 1
Waitms 10
Plus7 = 0
Plus8 = 1
Waitms 10
Plus8 = 0
Plus9 = 1
Waitms 10
Plus9 = 0
Minus3 = 1
Waitms 10
Plus1 = 1
Minus4 = 0
Waitms 10
Plus1 = 0
Plus2 = 1
Waitms 10
Plus2 = 0
Plus3 = 1
Waitms 10
Plus3 = 0
Plus4 = 1
Waitms 10
Plus4 = 0
Plus5 = 1
Waitms 10
Plus5 = 0
Plus6 = 1
Waitms 10
Plus6 = 0
Plus7 = 1
Waitms 10
Plus7 = 0
Plus8 = 1
Waitms 10
Plus8 = 0
Plus9 = 1
Waitms 10
Plus9 = 0
Minus4 = 1
Waitms 10
Plus1 = 1
Minus5 = 0
Waitms 10
Plus1 = 0
Plus2 = 1
Waitms 10
Plus2 = 0
Plus3 = 1
Waitms 10
Plus3 = 0
Plus4 = 1
Waitms 10
Plus4 = 0
Plus5 = 1
Waitms 10
Plus5 = 0
Plus6 = 1
Waitms 10
Plus6 = 0
Plus7 = 1
Waitms 10
Plus7 = 0
Plus8 = 1
Waitms 10
Plus8 = 0
Plus9 = 1
Waitms 10
Plus9 = 0
Minus5 = 1
Waitms 10
Plus1 = 1
Minus6 = 0
Waitms 10
Plus1 = 0
Plus2 = 1
Waitms 10
Plus2 = 0
Plus3 = 1
Waitms 10
Plus3 = 0
Plus4 = 1
Waitms 10
Plus4 = 0
Plus5 = 1
Waitms 10
Plus5 = 0
Plus6 = 1
Waitms 10
Plus6 = 0
Plus7 = 1
Waitms 10
Plus7 = 0
Plus8 = 1
Waitms 10
Plus8 = 0
Plus9 = 1
Waitms 10
Plus9 = 0
Minus6 = 1
Waitms 10
Plus1 = 1
Minus7 = 0
Waitms 10
Plus1 = 0
Plus2 = 1
Waitms 10
Plus2 = 0
Plus3 = 1
Waitms 10
Plus3 = 0
Plus4 = 1
Waitms 10
Plus4 = 0
Plus5 = 1
Waitms 10
Plus5 = 0
Plus6 = 1
Waitms 10
Plus6 = 0
Plus7 = 1
Waitms 10
Plus7 = 0
Plus8 = 1
Waitms 10
Plus8 = 0
Plus9 = 1
Waitms 10
Plus9 = 0
Minus7 = 1
Waitms 10
Plus1 = 1
Minus8 = 0
Waitms 10
Plus1 = 0
Plus2 = 1
Waitms 10
Plus2 = 0
Plus3 = 1
Waitms 10
Plus3 = 0
Plus4 = 1
Waitms 10
Plus4 = 0
Plus5 = 1
Waitms 10
Plus5 = 0
Plus6 = 1
Waitms 10
Plus6 = 0
Plus7 = 1
Waitms 10
Plus7 = 0
Plus8 = 1
Waitms 10
Plus8 = 0
Plus9 = 1
Waitms 10
Plus9 = 0
Minus8 = 1
Waitms 10
Plus1 = 1
Minus9 = 0
Waitms 10
Plus1 = 0
Plus2 = 1
Waitms 10
Plus2 = 0
Plus3 = 1
Waitms 10
Plus3 = 0
Plus4 = 1
Waitms 10
Plus4 = 0
Plus5 = 1
Waitms 10
Plus5 = 0
Plus6 = 1
Waitms 10
Plus6 = 0
Plus7 = 1
Waitms 10
Plus7 = 0
Plus8 = 1
Waitms 10
Plus8 = 0
Plus9 = 1
Waitms 10
Plus9 = 0
Minus9 = 1
Waitms 10
Return

'----------------------------------es sieht so aus, als würde sich ein Stern drehen  (OK is verbesserungswürdig)
Rotate1:
Gosub Aus
Plus5 = 1
Minus1 = 0
Minus2 = 0
Minus3 = 0
Minus4 = 0
Minus5 = 0
Minus6 = 0
Minus7 = 0
Minus8 = 0
Minus9 = 0
Waitms 100
If Ol = 0 Then
Gosub Aus
Minus5 = 0
Plus1 = 1
Plus2 = 1
Plus3 = 1
Plus4 = 1
Plus5 = 1
Plus6 = 1
Plus7 = 1
Plus8 = 1
Plus9 = 1
End If
Waitms 100
Gosub Aus
Return

'----------------------------Lauflicht je eine gesammte Rihe bewegt sich von Links nach Rechts
Lllinks:
Gosub Aus
Plus1 = 1
Minus1 = 0
Minus2 = 0
Minus3 = 0
Minus4 = 0
Minus5 = 0
Minus6 = 0
Minus7 = 0
Minus8 = 0
Minus9 = 0
Waitms 100
If Ol = 0 Then
Plus1 = 0
Plus2 = 1
End If
Waitms 100
If Ol = 0 Then
Plus2 = 0
Plus3 = 1
End If
Waitms 100
If Ol = 0 Then
Plus3 = 0
Plus4 = 1
End If
Waitms 100
If Ol = 0 Then
Plus4 = 0
Plus5 = 1
End If
Waitms 100
If Ol = 0 Then
Plus5 = 0
Plus6 = 1
End If
Waitms 100
If Ol = 0 Then
Plus6 = 0
Plus7 = 1
End If
Waitms 100
If Ol = 0 Then
Plus7 = 0
Plus8 = 1
End If
Waitms 100
If Ol = 0 Then
Plus8 = 0
Plus9 = 1
End If
Waitms 100
If Ol = 0 Then
Plus9 = 0
End If
Waitms 100
Gosub Aus
Return

'----------------------------Lauflicht je eine gesammte Rihe bewegt sich von Rechts nach Links
Llrechts:
Gosub Aus
Plus9 = 1
Minus1 = 0
Minus2 = 0
Minus3 = 0
Minus4 = 0
Minus5 = 0
Minus6 = 0
Minus7 = 0
Minus8 = 0
Minus9 = 0
Waitms 100
If Ol = 0 Then
Plus9 = 0
Plus8 = 1
End If
Waitms 100
If Ol = 0 Then
Plus8 = 0
Plus7 = 1
End If
Waitms 100
If Ol = 0 Then
Plus7 = 0
Plus6 = 1
End If
Waitms 100
If Ol = 0 Then
Plus6 = 0
Plus5 = 1
End If
Waitms 100
If Ol = 0 Then
Plus5 = 0
Plus4 = 1
End If
Waitms 100
If Ol = 0 Then
Plus4 = 0
Plus3 = 1
End If
Waitms 100
If Ol = 0 Then
Plus3 = 0
Plus2 = 1
End If
Waitms 100
If Ol = 0 Then
Plus2 = 0
Plus1 = 1
End If
Waitms 100
If Ol = 0 Then
Plus1 = 0
End If
Waitms 100
Gosub Aus
Return

'----------------------------Lauflicht je eine gesammte Rihe bewegt sich von Oben nach Unten
Llup:
Gosub Aus
Minus1 = 0
Plus1 = 1
Plus2 = 1
Plus3 = 1
Plus4 = 1
Plus5 = 1
Plus6 = 1
Plus7 = 1
Plus8 = 1
Plus9 = 1
Waitms 100
If Ol = 0 Then
Minus1 = 1
Minus2 = 0
End If
Waitms 100
If Ol = 0 Then
Minus2 = 1
Minus3 = 0
End If
Waitms 100
If Ol = 0 Then
Minus3 = 1
Minus4 = 0
End If
Waitms 100
If Ol = 0 Then
Minus4 = 1
Minus5 = 0
End If
Waitms 100
If Ol = 0 Then
Minus5 = 1
Minus6 = 0
End If
Waitms 100
If Ol = 0 Then
Minus6 = 1
Minus7 = 0
End If
Waitms 100
If Ol = 0 Then
Minus7 = 1
Minus8 = 0
End If
Waitms 100
If Ol = 0 Then
Minus8 = 1
Minus9 = 0
End If
Waitms 100
If Ol = 0 Then
Minus9 = 1
End If
Waitms 100
Gosub Aus
Return

'----------------------------Lauflicht je eine gesammte Rihe bewegt sich von Unten nach Oben
Lldown:
Gosub Aus
Minus9 = 0
Plus1 = 1
Plus2 = 1
Plus3 = 1
Plus4 = 1
Plus5 = 1
Plus6 = 1
Plus7 = 1
Plus8 = 1
Plus9 = 1
Waitms 100
If Ol = 0 Then
Minus9 = 1
Minus8 = 0
End If
Waitms 100
If Ol = 0 Then
Minus8 = 1
Minus7 = 0
End If
Waitms 100
If Ol = 0 Then
Minus7 = 1
Minus6 = 0
End If
Waitms 100
If Ol = 0 Then
Minus6 = 1
Minus5 = 0
End If
Waitms 100
If Ol = 0 Then
Minus5 = 1
Minus4 = 0
End If
Waitms 100
If Ol = 0 Then
Minus4 = 1
Minus3 = 0
End If
Waitms 100
If Ol = 0 Then
Minus3 = 1
Minus2 = 0
End If
Waitms 100
If Ol = 0 Then
Minus2 = 1
Minus1 = 0
End If
Waitms 100
If Ol = 0 Then
Minus1 = 1
End If
Waitms 100
Gosub Aus
Return

'---------------ab hier wird ein Diagonales Kreuz als Lauflicht Dargestellt Flash 1 - 5 sind die jeweiligen Abläufe dafür
Flash1:
Gosub Aus
Minus5 = 0
Plus5 = 1
Waitms 100
If Ol = 0 Then
Minus5 = 1
Plus5 = 0
End If
Gosub Aus
Return

Flash2:
Gosub Aus
Minus6 = 0
Minus4 = 0
Plus4 = 1
Plus6 = 1
Waitms 100
If Ol = 0 Then
Minus6 = 1
Minus4 = 1
Plus4 = 0
Plus6 = 0
End If
Gosub Aus
Return

Flash3:
Gosub Aus
Minus7 = 0
Minus3 = 0
Plus7 = 1
Plus3 = 1
Waitms 100
If Ol = 0 Then
Minus7 = 1
Minus3 = 1
Plus7 = 0
Plus3 = 0
End If
Gosub Aus
Return

Flash4:
Gosub Aus
Minus8 = 0
Minus2 = 0
Plus8 = 1
Plus2 = 1
Waitms 100
If Ol = 0 Then
Minus8 = 1
Minus2 = 1
Plus8 = 0
Plus2 = 0
End If
Gosub Aus
Return

Flash5:
Gosub Aus
Minus9 = 0
Minus1 = 0
Plus9 = 1
Plus1 = 1
Waitms 100
If Ol = 0 Then
Minus9 = 1
Minus1 = 1
Plus9 = 0
Plus1 = 0
End If
Gosub Aus
Return


'--Spezialeffekt..fängt fast mittig an als Lauflicht ,dann geht Mitte an und verfollständigt sich nach oben und Unten als Lauflicht
Effekt1:
Gosub Aus
Minus4 = 0
Minus6 = 0
Plus1 = 1
Plus9 = 1
Waitms 50
If Ol = 0 Then
Plus2 = 1
Plus8 = 1
End If
Waitms 50
If Ol = 0 Then
Plus3 = 1
Plus7 = 1
End If
Waitms 50
If Ol = 0 Then
Plus4 = 1
Plus6 = 1
End If
Waitms 50
If Ol = 0 Then
Plus5 = 1
Minus5 = 0
End If
Waitms 50
If Ol = 0 Then
Minus3 = 0
Minus7 = 0
End If
Waitms 50
If Ol = 0 Then
Minus2 = 0
Minus8 = 0
End If
Waitms 50
If Ol = 0 Then
Minus1 = 0
Minus9 = 0
End If
Waitms 50
Gosub Aus
Return


'--Lauflicht als komplette Balkenreihe Senkrecht jede 2te Reihe leuchtet auf und wechselt sich dann mit den nächsten Reihen ab
Effekt2:
Gosub Aus
Plus1 = 1
Plus3 = 1
Plus5 = 1
Plus7 = 1
Plus9 = 1
Minus1 = 0
Minus2 = 0
Minus3 = 0
Minus4 = 0
Minus5 = 0
Minus6 = 0
Minus7 = 0
Minus8 = 0
Minus9 = 0
Waitms 250
If Ol = 0 Then
Plus1 = 0
Plus3 = 0
Plus5 = 0
Plus7 = 0
Plus9 = 0
Plus2 = 1
Plus4 = 1
Plus6 = 1
Plus8 = 1
End If
Waitms 250
Gosub Aus
Return

'----Lauflicht mit selbigen Effekt wie oben jedoch in Waagerechter Form
Effekt3:
Gosub Aus
Minus1 = 0
Minus3 = 0
Minus5 = 0
Minus7 = 0
Minus9 = 0
Plus1 = 1
Plus2 = 1
Plus3 = 1
Plus4 = 1
Plus5 = 1
Plus6 = 1
Plus7 = 1
Plus8 = 1
Plus9 = 1
Waitms 250
If Ol = 0 Then
Minus1 = 1
Minus3 = 1
Minus5 = 1
Minus7 = 1
Minus9 = 1
Minus2 = 0
Minus4 = 0
Minus6 = 0
Minus8 = 0
End If
Waitms 250
Gosub Aus
Return


'---- Dieser Effektsoll einen Diamanten Darstellen
Diamant:
Gosub Aus
Minus1 = 0
Minus2 = 0
Minus3 = 0
Minus4 = 0
Minus5 = 0
Minus6 = 0
Minus7 = 0
Minus8 = 0
Minus9 = 0
Plus5 = 1
Waitms 5
If Ol = 0 Then
Minus1 = 1
Minus9 = 1
Plus4 = 1
Plus6 = 1
Waitms 5
End If
If Ol = 0 Then
Minus2 = 1
Minus8 = 1
Plus3 = 1
Plus7 = 1
Waitms 5
End If
If Ol = 0 Then
Minus3 = 1
Minus7 = 1
Plus2 = 1
Plus8 = 1
Waitms 5
End If
If Ol = 0 Then
Minus4 = 1
Minus6 = 1
Plus1 = 1
Plus9 = 1
Waitms 5
End If
Gosub Aus
Return


'----Hier wird der Effekt erzeugt, den Diamanten in Teilen aufzu Bauen (Dia1 - 9 gehören dazu)
Dia1:
Gosub Aus
If Ol = 0 Then
Minus1 = 0
Plus5 = 1
Waitms 5
End If
Gosub Aus
Return

Dia2:
Gosub Aus
If Ol = 0 Then
Minus2 = 0
Plus4 = 1
Plus5 = 1
Plus6 = 1
Waitms 5
End If
Gosub Aus
Return

Dia3:
Gosub Aus
If Ol = 0 Then
Minus3 = 0
Plus3 = 1
Plus4 = 1
Plus5 = 1
Plus6 = 1
Plus7 = 1
Waitms 5
End If
Gosub Aus
Return

Dia4:
Gosub Aus
If Ol = 0 Then
Minus4 = 0
Plus2 = 1
Plus3 = 1
Plus4 = 1
Plus5 = 1
Plus6 = 1
Plus7 = 1
Plus8 = 1
Waitms 5
End If
Gosub Aus
Return

Dia5:
Gosub Aus
If Ol = 0 Then
Minus5 = 0
Plus1 = 1
Plus2 = 1
Plus3 = 1
Plus4 = 1
Plus5 = 1
Plus6 = 1
Plus7 = 1
Plus8 = 1
Plus9 = 1
Waitms 5
End If
Gosub Aus
Return

Dia6:
Gosub Aus
If Ol = 0 Then
Minus6 = 0
Plus2 = 1
Plus3 = 1
Plus4 = 1
Plus5 = 1
Plus6 = 1
Plus7 = 1
Plus8 = 1
Waitms 5
End If
Gosub Aus
Return

Dia7:
Gosub Aus
If Ol = 0 Then
Minus7 = 0
Plus3 = 1
Plus4 = 1
Plus5 = 1
Plus6 = 1
Plus7 = 1
Waitms 5
End If
Gosub Aus
Return

Dia8:
Gosub Aus
If Ol = 0 Then
Minus8 = 0
Plus4 = 1
Plus5 = 1
Plus6 = 1
Waitms 5
End If
Gosub Aus
Return

Dia9:
Gosub Aus
If Ol = 0 Then
Minus9 = 0
Plus5 = 1
Waitms 5
End If
Gosub Aus
Return
' --------- Vorläufiges Ende der Programme ;-) ------




Viel Spaß mit den Effekten..... ihr könnt den Code eigentlich einfach so übernehmen, wenn ihr wollt....allerdings sind es in diesem Falle mehr als 2K es könnte also Probleme mit der Demo von Bascom geben.

Zur Problembehebung einfach ne PM an mich und ich schaue mal, was ich für euch machen kann. :wink:
Zuletzt geändert von Andy am Di, 30.01.07, 20:33, insgesamt 2-mal geändert.
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Di, 30.01.07, 19:16

Wow, was für ein langer Code. :wink:
Sieht klasse aus, Andy. :wink:
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Di, 30.01.07, 19:34

@Pehu...

Hast du eventuell ne Idee, wie man das Ganze etwas abkürzen könnte?

Wäre eigentlich sehr Hilfreich.

Habe aber noch mehr rumprobiert...und mal ne Faderschaltung mit Sondereffekten geschrieben...
Ist allerdings für Software PWM.
Und auch nicht gerade sehr Kurz geworden....lol...
Werde mal ein kleines Video dazu Posten...( oder Editieren ) aber dazu später etwas mehr...

und auch nur, wenn Interesse daran besteht... :wink:
Benutzeravatar
Fightclub
Post-Hero
Post-Hero
Beiträge: 5114
Registriert: Mi, 01.03.06, 18:40

Di, 30.01.07, 19:58

*schluck* aber sagmal andy? wie schaltest du denn bei der 9x9er matrix alles mit einem AVR? Das sind doch allein schon 81 Outs :shock:

Naja ich hab heut ers angefangen und bisher ist es bei einem wechselblinker und einem Taster zum An- und Ausschalten einzelner LEDs geblieben *g*
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Di, 30.01.07, 20:00

Hehehehe...

Nein...es sind NUR 18 Ports....

Da werden 9 mal + und 9 x - Geschaltet...daher ja auch Matrix.

Wenn der Bilderupload wieder Funzt, werde ich hier mal eine LED 9x9 Matrix Hochladen, dann versteht man es wesentlich besser.
Benutzeravatar
Neo
Auserwählter
Auserwählter
Beiträge: 2631
Registriert: Fr, 25.02.05, 23:22
Wohnort: hessen-wisbaden
Kontaktdaten:

Di, 30.01.07, 20:02

*schluck* aber sagmal andy? wie schaltest du denn bei der 9x9er matrix alles mit einem AVR? Das sind doch allein schon 81 Outs Shocked

in deiner frage liegt auch die Antwort
du solltest nur mal über legen was eigentlich eine Matrix ist :wink:
Benutzeravatar
Fightclub
Post-Hero
Post-Hero
Beiträge: 5114
Registriert: Mi, 01.03.06, 18:40

Di, 30.01.07, 20:03

ah ich glaube ich verstehe :D nach kurzem nachdenken hats bling gemacht. Du hast quasi ein gatter und steuerst mit 9 ports die reihen und mit den anderen 9 die zeilen an und mit der kombination aus beidem lassen sich dann 81 leds ansteuern.... Garnicht dumm. Respekt.
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Di, 30.01.07, 20:09

Jupp....

Genau so funktioniert das... :wink:


Ahso, bevor ich es vergesse...

Danke, an wem auch immer, für das Editieren meines Beitrages....hatte vergessen es in einem Code zu packen.
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Di, 30.01.07, 21:13

Hast du eventuell ne Idee, wie man das Ganze etwas abkürzen könnte?
Beim schnellen Durchscrollen deines Codes, fällt mir ehrlich gesagt nichts ein. :wink:
Sieht sauber aus, schön in einzelnen Unterprogrammen untergeteilt. Erinnert mich ein bisschen an einem 3D-Cube. :wink:

Ich vermute mal, dass du schon an die Ansteuerung einzelner Pixeln arbeitest?
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Di, 30.01.07, 22:05

hehehe...das könnte schon mal Angehen...so eine LAUFSCHRIFT wäre dann auch schon was feines....

Oder eventuell mal so´n Display oder ähnliches...jaaaaaaa.....bestimmt irgendwann einmal. :wink:


Hier habe ich mal ein kleines Video für euch vorbereitet und liegt auf einem Server.

Allerdings 27MB groß...wollte ich Bearbeiten, is aber leider nichts geworden...(binn wohl zu Dumm dafür)
ist auch wieder eine MOV Datei (für VLC oder Quicktime)

Das ist eine Software PWM für eine RGB Ansteuerung mit nebeneffekten.

Was mich an der Sache nur noch stört ist das das Rot sehr stark Dominiert...(Noch, gewöhne ich dem aber ab :wink: )


Und was mich dann auch noch stört, ist das die LED´s zu sehr bei den Farbübergängen "FLASHEN"
binn aber dabei dieses Phänomen zu beseitigen.

So wie das Programm jetzt läuft ( etwas über 5min ein Durchgang )
sol es dann auch später in seiner Anwendung haben.

Diese Schaltung werde ich dann, wenn sie fertig ist, in meiner Vitrine einbauen.

Warum Vitrine?...Das will ich euch gerne verraten.

Also...

Ich sammle Mystische Drachen und die stehen in meiner Vitrine.

Damit die Atmosphäre und das Ambiente für die Sammlung passt, habe ich mir die Faderschaltung ausgedacht.
(Passt einfach am besten dazu) die Nebeneffekte sind absolut gewollt, die stellen dann eine Art Gewitter mit Blitzen in unregelmäßigen reihenfolgen dar.
Der Hintergrund der Vitrine ist recht Dunkel und somit wirkt es dann extremer.

Die LED´s die ich derzeit für die Programmentwicklung genommen habe, werden dann, wenn es soweit ist, gegen andere LED´s ausgetauscht.


Aber genug des langen Geredes....hier der Link zu dem Video....

( Achtung die einzelnen Farbphasen sind recht lang )

*********************************************
* http://www.Lichtpunkt-LED.de/Video/RGBFader.MOV *
*********************************************


Viel Spaß beim Anschauen...und bringtr etwas Geduld mit :wink:

Bei Interesse werde ich den Code auch mal einstellen.
Antworten