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 , 15.01.2020 11:54

Jede Jeck is anders ;-).

So, das Mund-Modul hat einen Ausgang und das Programm ist noch weiter geschrumpft und übersichtlicher geworden , Weniger Kabelwirrwarr und ordentlicher sieht der Aufbau auch noch aus , es ist nur noch portd.0-3 belegt für Mund und Augen. Die Augen können jetzt einzeln gesteuert werden, so kann Nr. 6 zwinkern, schielen...

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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
 
' Compiler: Bascom-Demo 2.0.7.5
 
' Dateiname: Augen und Mund bewegen.avr
' Funktion: die Augen und den Mund für Nr. 6 mit Tastern bewegen
' Datum: 12.01.2020, Stand 14.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-Modul Dateneingang
Cs alias portd.1 ' max-Modul Steuerung der Datenübernahme, anzeigen/nicht anzeigen
Clk alias portd.2 ' max-Modul Takteingang
config Din = output
config Cs = output
config Clk = output
 
Taster_1 alias pinc.1
Taster_2 alias pinc.2
Taster_3 alias pinc.3
Taster_4 alias pinc.4
config Taster_1 = input
config Taster_2 = input
config Taster_2 = input
config Taster_3 = input
 
' --- Variablen... ---------------------------------------------------------------------------------------------
 
dim Anzahl as byte ' Anzahl der angeschloßenen max-Module
dim Modul as byte ' Zähler für die Anzahl der angeschloßenen max-Module
dim Befehl as byte ' Befehl für das max-Modul
dim Daten as byte ' Daten für das max-Modul
dim Zeile as byte ' Zähler für die Zeilen der max-Module
dim leeren as byte ' Zähler um die max_Module zu leeren
dim A6 as byte ' Position im Datafeld für max-Modul 6 (Auge rechts)
dim A5 as byte ' Position im Datafeld für max-Modul 5 (Auge links)
dim M4 as byte ' Position im Datafeld für max-Modul 4 (Mund rechts)
dim M3 as byte ' Position im Datafeld für max-Modul 3 (Mund rechts m)
dim M2 as byte ' Position im Datafeld für max-Modul 2 (Mund links m)
dim M1 as byte ' Position im Datafeld für max-Modul 1 (Mund links)
dim Nr6 as byte ' so fühlt sich Nr. 6 aktuell
dim Zeit as word ' die vergangene Zeit ohne eine Aktion von mir
 
' --- Vorbelegung der Variablen... -----------------------------------------------------------------------------
 
Anzahl = 6 ' 2 Module für die Augen und 4 Module für den Mund
A6 = 0 ' Position für Auge rechts zu
A5 = 0 ' Position für Auge links zu
M4 = 0 ' Positionen für Mund zu
Nr6 = 0 ' Nr. 6 schläft
Zeit = 0 ' die Zeit fängt an zu laufen ;-)
 
' --- Programm Anfang ------------------------------------------------------------------------------------------
 
gosub Init_max ' max-Module initialisieren
gosub Zero_max ' max-Module leeren
waitms 1000 ' eine kleine Pause bevor es los geht
 
gosub Gesicht ' Mund und Augen zu machen, es kann jetzt losgehen ;-)
 
' --- A5 M4 Nr6
' --- 0 = Augen zu 0 = Mund zu 0 = schlafen
' --- 8 = Augen auf 32 = Mund auf 1 = wach
' --- 16 = Augen unten 64 = Mund lach 2 = lach
' --- 24 = Augen rechts unten 96 = Mund traurig 3 = traurig
' --- 32 = Augen rechts 4 = langweilig
' --- 40 = Augen rechts oben 5 = genervt
' --- 48 = Augen oben 6 = unruhig
' --- 56 = Augen links oben 7 = redet
' --- 64 = Augen links 8 =
' --- 72 = Augen links unten 9 =
 
do
 
if Taster_1 = 1 then : Zeit = 0 : Nr6 = 0 : A6 = 0 : A5 = 0 : M4 = 0 : gosub Gesicht : endif ' Mund zu, Augen zu
if Taster_2 = 1 then : Zeit = 0 : Nr6 = 1 : A6 = 8 : A5 = 8 : M4 = 32 : gosub Gesicht : endif ' Mund auf, Augen auf
if Taster_3 = 1 then : Zeit = 0 : Nr6 = 1 : A6 = 32 : A5 = 32 : M4 = 64 : gosub Gesicht : endif ' Mund lach, Augen rechts
if Taster_4 = 1 then : Zeit = 0 : Nr6 = 1 : A6 = 64 : A5 = 64 : M4 = 96 : gosub Gesicht : endif ' Mund sauer, Augen links
 
if Zeit > 2000 then ' seit 2 Sekunden gab es keine Aktion von mir
Zeit = 0
Select Case Nr6
Case 0 : if Nr6 = 0 then : Nr6 = 1 : A6 = 8 : A5 = 8 : M4 = 32 : endif ' Mund auf, Augen auf
Case 1 : if Nr6 = 1 then : Nr6 = 0 : A6 = 0 : A5 = 0 : M4 = 0 : endif ' Mund zu, Augen zu
End Select
gosub Gesicht
endif
 
waitms 1
incr Zeit
 
loop
 
' --- Programm Ende --------------------------------------------------------------------------------------------
 
end
 
' --- Prozeduren, Funktionen... --------------------------------------------------------------------------------
 
Gesicht:
M3 = M4 + 8 : M2 = M3 + 8 : M1 = M2 + 8
for Zeile = 1 to 8
Cs = 0 : Din = 0 : Clk = 0 ' noch nicht anzeigen
Befehl = Zeile
Daten = lookup( A6 , Augenarten ) ' 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( A5 , Augenarten ) ' 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( 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 Erste 8x8 Matrix seriel angeschloßen
shiftout Din , Clk , Befehl , 1 ' den Befehl senden
shiftout Din , Clk , Daten , 1 ' die Daten senden
incr A6 : incr A5 ' die nächste Zeile vom Auge
incr M4 : incr M3 : incr M2 : incr M1 ' die nächste Zeile vom Mund
Cs = 1 ' jetzt anzeigen
next Zeile
return
 
Init_max:
for Modul = 1 to Anzahl
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
return
 
Zero_max:
for Modul = 1 to Anzahl
For leeren = 1 To 8
Befehl = leeren
Daten = &B00000000
Gosub Send_max
Next leeren
next Modul
Return
 
Send_max:
Cs = 0 : Din = 0 : Clk = 0 ' die Augen und den Mund noch nicht anzeigen
shiftout Din , Clk , Befehl , 1 ' den Befehl senden
shiftout Din , Clk , Daten , 1 ' die Daten senden
Cs = 1 ' jetzt die Augen und den Mund anzeigen
Return
 
' --- data Reihen... -------------------------------------------------------------------------------------------
 
Augenarten:
' 0 --- Augen zu ---
data &B00100000 , &B00010000 , &B00001000 , &B00001000 , &B00001000 , &B00001000 , &B00010000 , &B00100000
' 8 --- Augen auf ---
data &B00111100 , &B01000010 , &B10000001 , &B10011001 , &B10011001 , &B10000001 , &B01000010 , &B00111100
' 16 --- Augen unten ---
data &B00111100 , &B01000010 , &B10000001 , &B10110001 , &B10110001 , &B10000001 , &B01000010 , &B00111100
' 24 --- Augen rechts unten ---
data &B00111100 , &B01000010 , &B10110001 , &B10110001 , &B10000001 , &B10000001 , &B01000010 , &B00111100
' 32 --- Augen rechts ---
data &B00111100 , &B01000010 , &B10011001 , &B10011001 , &B10000001 , &B10000001 , &B01000010 , &B00111100
' 40 --- Augen rechts oben ---
data &B00111100 , &B01000010 , &B10001101 , &B10001101 , &B10000001 , &B10000001 , &B01000010 , &B00111100
' 48 --- Augen oben ---
data &B00111100 , &B01000010 , &B10000001 , &B10001101 , &B10001101 , &B10000001 , &B01000010 , &B00111100
' 56 --- Augen links oben ---
data &B00111100 , &B01000010 , &B10000001 , &B10000001 , &B10001101 , &B10001101 , &B01000010 , &B00111100
' 64 --- Augen links ---
data &B00111100 , &B01000010 , &B10000001 , &B10000001 , &B10011001 , &B10011001 , &B01000010 , &B00111100
' 72 --- Augen links unten ---
data &B00111100 , &B01000010 , &B10000001 , &B10000001 , &B10110001 , &B10110001 , &B01000010 , &B00111100
 
Mundarten:
' 0 --- 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
' 32 --- 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
' 64 --- 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
' 96 --- 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