Archiv verlassen und diese Seite im Standarddesign anzeigen : edit: brauche einsteigerhilfe mit bascom
PhoenixTS82
11.07.2008, 16:25
hiho
Ich habe jetzt meine Controller (Mega32) + Grundschaltung fertig.
LED Matrix fertig (5x6)
Funktioniert auch.
Jetzt möchte ich gerne ein paar kleine lichterspiele programmieren.
wie kann ich denn möglichst einfache sequenzen machen ?
ich dachte daran kleine prozeduren zu schreiben für jedes "Bild"
(z.b. 1. reihe, 2.reihe, 3.reiche usw.)
mit einer Zeitangabe
das das ungefähr so aussieht
Reihe 1
waitms 100
reihe 2
weitms 100
diagonale 1
waitms 100
usw.
oder habt ihr da besere ideen ?
(zur info:) das ganze soll irgendwann mal ein 5x5x5 rgb cube werden)
vielen dank schon mal....
Hallo,
..wie kann ich denn möglichst einfache sequenzen machen ? ...
Du musst Dich entscheiden, welche Grundfunktionen (Linie/Fläche/Füllung/"Wachsen-Lassen"/"Schrumpfen-Lassen" usw.) Du implementieren möchtest, und dann alles aufeinander aufbauen, so wie es z.B. bei OpenGL (http://en.wikipedia.org/wiki/OpenGL) und vielen anderen Grafik-Paketen gemacht wird.
Viele Grüße
Fred
PhoenixTS82
11.07.2008, 22:55
ja die betonung liegt auf WIE.
soll ich für jede kombination eine procedur schreiben ?
und dann immer proceduren verknüpfen bis ich ne sequenz habe `?
edit:
um nochmal ein schritt zurück zu gehen, wie benutzte ich denn die timer fuktion dafür ?
eine einzelne led an und ausschalten ist kein problem:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$crystal = 8000000
$baud = 9600
config porta.0 = output 'spalte
config porta.1 = output
config porta.2 = output
config porta.3 = output
config porta.4 = output
config porta.5 = output
config portc.0 = output 'reihe
config portc.1 = output
config portc.2 = output
config portc.3 = output
config portc.4 = output
config timer0 = timer , prescale = 1024
enable interrupts
portc.0 = 1
do
toggle porta.1
return
so weit so gut, aber wie kriege ich denn damit verschiede sequenzen hin,
ich brauch mal nen kleinen denkanstoß
bis jetzt sieht das noch so aus :
do
portA = &b00000001
portA = &b00000001
waitms 3
portA = &b00000010
portA = &b00000001
waitms 3
portA = &b00000100
portA = &b00000001
waitms 3
portA = &b00001000
portA = &b00000001
waitms 3
portA = &b00010000
portA = &b00000001
waitms 3
portA = &b00100000
portA = &b00000001
waitms 3
loop
wie kreige ich das denn in eine procedure/subroutine ?
Also ich stand mal genau vor dem Selben Problem wie du. Ich habe mir dazu einfach eine Funktion geschrieben, die mit parametern aufgerufen wird wie z.b. "ledan(1,2,1). Die parameter sind dann einfach die Koordinaten der einzelnen LED`s in meinem Cube gewesen. Dann kannst du schon mal einfach deine Bilder erstellen ohne immer die einzelnen Pins von hand auf high oder low setzen zu müssen. Die einzelnen Bilder würde ich wieder in einzelne Unterfunktionen abspeichern die du dann in der Hauptschleife nacheinander oder eben auf Knopfdruck abrufen kannst.
Eine einfacherere Lösung ist mir dabei leider auch nicht eingefallen.
Benutz mal einfach die Suche und such nach 3x3x3 Cube. Da sollte mein Thread noch irgendwo rumliegen.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.