Hallo alle,
ich hab einen LED Cube 5³ gebastelt. Als µC hab ich einen AtMega32
genommen. Ich wollt jetzt mal wissen, wie viele Bilder ich eigentlich
speichern kann. Mein Programm hab ich in Bascom geschrieben:
1
'---------------------------
2
$regfile = "m32def.dat"
3
$framesize = 32
4
$swstack = 32
5
$hwstack = 32
6
$crystal = 1600000
7
'---------------------------
8
'Ports als Ausgang setzen
9
'---------------------------
10
Config Porta = Output
11
Config Portb = Output
12
Config Portc = Output
13
Config Portd = Output
14
'---------------------------
15
'Variablen deklarieren
16
'---------------------------
17
Dim Bild As Word
18
Dim Maxbild As Word
19
Dim Ebene As Byte
20
Dim Dauer As Byte
21
Dim Dauer2 As Byte
22
Dim Temp As Word
23
Dim Temp2 As Word
24
Dim Offset As Word
25
'---------------------------
26
'Hauptprogramm
27
'---------------------------
28
Do
29
30
Maxbild = Lookup(0 , Bilder)
31
Maxbild = Maxbild - 1
32
33
For Bild = 0 To Maxbild
34
35
Temp2 = Bild + 1
36
Temp = Lookup(temp2 , Bilder)
37
Dauer2 = Temp / 25
38
39
For Dauer = 0 To Dauer2
40
41
For Ebene = 0 To 4
42
43
Portd = &B00000000
44
Porta = &B00000000
45
Portc = &B00000000
46
Portb = &B00000000
47
48
Waitms 5
49
Portd = Lookup(offset , Muster)
50
Offset = Offset + 1
51
Porta = Lookup(offset , Muster)
52
Offset = Offset + 1
53
Portc = Lookup(offset , Muster)
54
Offset = Offset + 1
55
Portb = Lookup(offset , Muster)
56
57
Waitms 20
58
59
Next Ebene
60
61
Next Dauer
62
63
Next Bild
64
65
Loop
66
67
End
68
69
'---------------------------
70
Muster:
71
'---------------------------
72
$include "muster.txt"
73
74
'---------------------------
75
Bilder:
76
'---------------------------
77
$include "bild + zeit.txt"
Nun hab ich 2 Textdateien:
in der ersten Muster liegen die Bilder so:
1
Data &B11000000 , &B11111111 , &B11111111 , &B11111111
2
Data &B10100000 , &B11111111 , &B11111111 , &B11111111
3
Data &B10010000 , &B11111111 , &B11111111 , &B11111111
4
Data &B10001000 , &B11111111 , &B11111111 , &B11111111
5
Data &B10000100 , &B11111111 , &B11111111 , &B11111111
6
7
Data &B01000000 , &B00000000 , &B00000000 , &B00000000
8
Data &B00100000 , &B00000000 , &B00000000 , &B00000000
9
Data &B00010000 , &B00000000 , &B00000000 , &B00000000
10
Data &B00001000 , &B00000000 , &B00000000 , &B00000000
11
Data &B00000100 , &B00000000 , &B00000000 , &B00000000
Und in der anderen die Anzahl der Bilder und wie lange diese angezeigt
werden:
1
Data 2% 'Anzahl der Bilder
2
3
Data 500% 'Dauer Bild1
4
Data 500% 'Dauer Bild2
Wie kann ich nun Berechnen, wie viele Bilder ich speichern kann?
Vielleicht kann mir jmd. das erklären. Am besten wär mit Rechenweg.
LED Bastler schrieb im Beitrag #2005321:
> Wie kann ich nun Berechnen, wie viele Bilder ich speichern kann?> Vielleicht kann mir jmd. das erklären. Am besten wär mit Rechenweg.
Du brauchst pro Bild 20 Byte Flash.
Dein übriggebliebenener Speicher geteilt durch 20 ergibt die mögliche
Bildanzahl.
Floh schrieb:> Du brauchst pro Bild 20 Byte Flash.>> Dein übriggebliebenener Speicher geteilt durch 20 ergibt die mögliche> Bildanzahl.
Das hab ich mir auch schon überlegt, aber wie sieht das dann mit der
Länge der Animationen aus. Die brauchen doch auch platz.
LED Bastler schrieb im Beitrag #2005388:
> Und zu dem Ergebnis dann noch die 2 Byte für die Anzahl der Bilder> richtig?
Wobei du die 2 Byte ja nur einmal im Programm brauchst, also nicht mit
der Anzahl der Bilder wächst.
Kauf dir einen Atmega644 - dann kannst du auf jeden Fall schonmal ~680
weitere Bilder Speichern mit 16Kb mehr an Speicher :D
Der ist Pin Kompatibel zum Atmega32, du musst nur noch deine µC
Definition in deinem Programm ändern. ;)
Achja... der hat auch noch 6 PWM Kanäle... da wüsste ich schon was ich
mit mit dem 5³ Cube machen würde ;)