Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

Der Ursprung dieses Forum reicht bis in das Jahr 2008 zurück

AVR / Atmel

RE: Nr. 6 lebt ...

 von Naubaddi , 14.01.2020 13:15

So, der Anfang ist gemacht und es funktioniert, die Übersicht ist für mich sogar besser geworden weil wesentlich weniger Zeilen .

Es wurde erst mal nur der Mund der mit Tastern bewegt wird auf weniger Zeilen reduziert, mal sehen ob da noch weniger geht ist ja fast wie zu Zeiten mit 8Bit Computern ohne Desktop .

So sieht das geschrumpfte Programm aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
 
' Compiler: Bascom-Demo 2.0.7.5
 
' Dateiname: Mund bewegen.avr
' Funktion: einen Mund für Nr. 6 mit Tastern bewegen, auf, zu, lach und traurig
' Datum: 12.01.2020, Stand 13.01.2020
' Von: Naubaddi
 
' --- Mikrocontroler Daten... ----------------------------------------------------------------------------------
 
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 40
$framesize = 40
 
' &HFF, &HE1, &HD9, &HFF ' 1MHz
$PROG &HFF, &HE4, &HD9, &HFF ' 8MHz
 
' --- Deklarationen... -----------------------------------------------------------------------------------------
 
Din alias portd.0 ' max Dateneingang
Cs alias portd.1 ' max Steuerung der Datenübernahme, anzeigen/nicht anzeigen
Clk alias portd.2 ' max Takteingang
 
Taster_1 alias pinc.1
Taster_2 alias pinc.2
Taster_3 alias pinc.3
Taster_4 alias pinc.4
 
config Din = output
config Cs = output
config Clk = output
 
config Taster_1 = input
config Taster_2 = input
config Taster_2 = input
config Taster_3 = input
 
' --- Variablen... ---------------------------------------------------------------------------------------------
 
dim Modul as byte ' Zähler für die Anzahl der angeschloßenen max-Module
dim Befehl as byte ' Befehl für den max
dim Daten as byte ' Daten für den max
dim Zeile as byte ' Zähler für die Zeilen der 8x8 Matrix
dim leeren as byte ' Zähler für leeren
 
dim M4 as word ' Position im Datafeld für max 4
dim M3 as word ' Position im Datafeld für max 3
dim M2 as word ' Position im Datafeld für max 2
dim M1 as word ' Position im Datafeld für max 1
 
' --- Vorbelegung der Variablen... -----------------------------------------------------------------------------
' --- Programm Anfang ------------------------------------------------------------------------------------------
 
gosub Init_max
gosub Matrix_leeren
 
waitms 1000
 
M4 = 0 : M3 = 8 : M2 = 16 : M1 = 24 ' Positionen für den Mund zu
goto Mund ' Mund zu anzeigen damit man weiß es kann losgehen ;-)
 
do
 
Taster:
if Taster_1 = 1 then : M4 = 0 : M3 = 8 : M2 = 16 : M1 = 24 : goto Mund : endif
if Taster_2 = 1 then : M4 = 32 : M3 = 40 : M2 = 48 : M1 = 56 : goto Mund : endif
if Taster_3 = 1 then : M4 = 64 : M3 = 72 : M2 = 80 : M1 = 88 : goto Mund : endif
if Taster_4 = 1 then : M4 = 96 : M3 = 104 : M2 = 112 : M1 = 120 : goto Mund : endif
 
loop
 
' --- Programm Ende --------------------------------------------------------------------------------------------
 
end
 
' --- Prozeduren, Funktionen... --------------------------------------------------------------------------------
 
Mund: ' einen Mund anzeigen
for Zeile = 1 to 8
Cs = 0 : Din = 0 : Clk = 0 ' noch nicht anzeigen
Befehl = Zeile ' Zeilen Nr. der Matrix
Daten = lookup( M4 , Mundarten ) ' 8x8 Matrix 4, die letzte 8x8 Matrix
shiftout Din , Clk , Befehl , 1 ' den Befehl senden
shiftout Din , Clk , Daten , 1 ' die Daten senden
Daten = lookup( M3 , Mundarten ) ' 8x8 Matrix 3
shiftout Din , Clk , Befehl , 1 ' den Befehl senden
shiftout Din , Clk , Daten , 1 ' die Daten senden
Daten = lookup( M2 , Mundarten ) ' 8x8 Matrix 2
shiftout Din , Clk , Befehl , 1 ' den Befehl senden
shiftout Din , Clk , Daten , 1 ' die Daten senden
Daten = lookup( M1 , Mundarten ) ' 8x8 Matrix 1, die mit dem Anschluß zum Mikrocontroller
shiftout Din , Clk , Befehl , 1 ' den Befehl senden
shiftout Din , Clk , Daten , 1 ' die Daten senden
incr M4 : incr M3 : incr M2 : incr M1 ' die nächste Zeile vom Mund
Cs = 1 ' jetzt anzeigen
next Zeile
goto Taster
 
Init_max:
for Modul = 1 to 4 ' 4 8x8 Matrix-Module sind angeschlossen
Befehl = &H0C : Daten = 0 ' Shutdown an, keine Ausführung möglich
gosub Send_max
Befehl = &H09 : Daten = 0 ' auf Matrixbetrieb schalten, nicht auf 7 Segmentbetrieb
gosub Send_max
Befehl = &H0A : Daten = 0 ' Helligkeit 0-15
gosub Send_max
Befehl = &H0B : Daten = 7 ' wieviel Reihen sollen benutzt werden 0-7
gosub Send_max
Befehl = &H0F : Daten = 0 ' Test aus
gosub Send_max
Befehl = &H0C : Daten = 1 ' Shutdown aus, eine Ausführung ist wieder möglich
gosub Send_max
next Modul ' nächste Matrix
return
 
Matrix_leeren:
for Modul = 1 to 4 ' 4 8x8 Matrix-Module sind angeschlossen
For leeren = 1 To 8 ' die Zeile X (leeren) vom max
Befehl = leeren ' der Befehl für Zeile X (leeren) vom max
Daten = &B00000000 ' alle LEDs der 8x8 Matrix ausschalten
Gosub Send_max ' den Befehl und die Daten zum max senden
Next leeren ' nächste Zeile der Matrix
next Modul ' nächste Matrix
Return
 
Send_max: ' den Befehl und die Daten zur max senden
Cs = 0 : Din = 0 : Clk = 0 ' noch nicht anzeigen
shiftout Din , Clk , Befehl , 1 ' den Befehl senden
shiftout Din , Clk , Daten , 1 ' die Daten senden
Cs = 1 ' jetzt anzeigen
Return
 
' --- data Reihen... -------------------------------------------------------------------------------------------
 
Mundarten:
' --- Mund zu ---
data &B00000000 , &B00000000 , &B00000000 , &B01111111 , &B01111111 , &B00000000 , &B00000000 , &B00000000
data &B00000000 , &B00000000 , &B00000000 , &B11111111 , &B11111111 , &B00000000 , &B00000000 , &B00000000
data &B00000000 , &B00000000 , &B00000000 , &B11111111 , &B11111111 , &B00000000 , &B00000000 , &B00000000
data &B00000000 , &B00000000 , &B00000000 , &B11111110 , &B11111110 , &B00000000 , &B00000000 , &B00000000
' --- Mund auf ---
data &B00000000 , &B00001111 , &B00011111 , &B00011000 , &B00011000 , &B00011111 , &B00001111 , &B00000000
data &B00000000 , &B11111111 , &B11111111 , &B00000000 , &B00000000 , &B11111111 , &B11111111 , &B00000000
data &B00000000 , &B11111111 , &B11111111 , &B00000000 , &B00000000 , &B11111111 , &B11111111 , &B00000000
data &B00000000 , &B11110000 , &B11111000 , &B00011000 , &B00011000 , &B11111000 , &B11110000 , &B00000000
' --- Mund lach ---
data &B00000000 , &B01100000 , &B01110000 , &B00111100 , &B00001111 , &B00000011 , &B00000000 , &B00000000
data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B11111111 , &B11111111 , &B00000000
data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B11111111 , &B11111111 , &B00000000
data &B00000000 , &B00000110 , &B00001110 , &B00111100 , &B11110000 , &B11000000 , &B00000000 , &B00000000
' --- Mund traurig ---
data &B00000000 , &B00000000 , &B00000011 , &B00001111 , &B00111100 , &B01110000 , &B01100000 , &B00000000
data &B00000000 , &B11111111 , &B11111111 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000
data &B00000000 , &B11111111 , &B11111111 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000
data &B00000000 , &B00000000 , &B11000000 , &B11110000 , &B00111100 , &B00001110 , &B00000110 , &B00000000
 
' --------------------------------------------------------------------------------------------------------------
 



Grüßle, Naubaddi

Naubaddi
Beiträge: 288
Registriert am: 29.01.2019

Themen Überblick

Betreff Absender Datum
-
Nr. 6 lebt ... Naubaddi 03.01.2020
RE: Nr. 6 lebt ... Naubaddi 03.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 03.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 05.01.2020
RE: Nr. 6 lebt ... Naubaddi 06.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 06.01.2020
RE: Nr. 6 lebt ... Naubaddi 06.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 06.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 06.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 12.01.2020
RE: Nr. 6 lebt ... Naubaddi 12.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 12.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 12.01.2020
RE: Nr. 6 lebt ... Naubaddi 12.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 12.01.2020
RE: Nr. 6 lebt ... Naubaddi 12.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 12.01.2020
RE: Nr. 6 lebt ... Naubaddi 13.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 13.01.2020
RE: Nr. 6 lebt ... Naubaddi 14.01.2020
RE: Nr. 6 lebt ... Naubaddi 14.01.2020
RE: Nr. 6 lebt ... Naubaddi 14.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 14.01.2020
RE: Nr. 6 lebt ... Naubaddi 14.01.2020
RE: Nr. 6 lebt ... Naubaddi 14.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 14.01.2020
RE: Nr. 6 lebt ... Naubaddi 14.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 14.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 15.01.2020
RE: Nr. 6 lebt ... Naubaddi 15.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 15.01.2020
RE: Nr. 6 lebt ... Naubaddi 15.01.2020
RE: Nr. 6 lebt ... Naubaddi 15.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 15.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 15.01.2020
RE: Nr. 6 lebt ... Naubaddi 15.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 15.01.2020
RE: Nr. 6 lebt ... Naubaddi 16.01.2020
RE: Nr. 6 lebt ... Naubaddi 16.01.2020
RE: Nr. 6 lebt ... BoomBoomMagic 04.02.2020
 

Picaxe Editor 5.5.5 Download
Update auf Picaxe Editor 5.5.6 Download
Picaxe Editor 6.x.x.x Download
Manual1.pdf        -      Grundwissen Download
Manual2.pdf        -      Befehle Download
Manual3.pdf        -      Beispiele Download


Press [Backspace] for back to Menu


Counter
Xobor Forum Software ©Xobor.de | Forum erstellen
Datenschutz