schule_schranke_servo_.asm


1
.include "m32def.inc"
2
  
3
4
.def temp=r16
5
.def temp2=r17
6
.def temp3=r18
7
8
 
9
        ldi temp, LOW(RAMEND)
10
        out SPL, temp        
11
        ldi temp, HIGH(RAMEND)     
12
        out SPH, temp
13
  
14
  ldi temp, 0xff
15
  out DDRC, temp
16
  
17
18
ldi r19,255
19
ldi r20,0
20
21
warte1ms:
22
out PORTC,r19
23
; ============================= 
24
;   Warteschleifen-Generator 
25
;     16000 Zyklen:
26
; ----------------------------- 
27
; warte 15996 Zyklen:
28
          ldi  R17, $1F
29
WGLOP0:  ldi  R18, $AB
30
WGLOP1:  dec  R18
31
          brne WGLOP1
32
          dec  R17
33
          brne WGLOP0
34
; ----------------------------- 
35
; warte 3 Zyklen:
36
          ldi  R17, $01
37
WGLOP2:  dec  R17
38
          brne WGLOP2
39
; ----------------------------- 
40
; warte 1 Zyklus:
41
          nop
42
; ============================= 
43
out PORTC,r20
44
warte19ms:
45
; ============================= 
46
;   Warteschleifen-Generator 
47
;     304000 Zyklen:
48
; ----------------------------- 
49
; warte 303996 Zyklen:
50
          ldi  R17, $07
51
WGOOP0:  ldi  R18, $4B
52
WGOOP1:  ldi  R19, $C0
53
WGOOP2:  dec  R19
54
          brne WGOOP2
55
          dec  R18
56
          brne WGOOP1
57
          dec  R17
58
          brne WGOOP0
59
; ----------------------------- 
60
; warte 3 Zyklen:
61
          ldi  R17, $01
62
WGOOP3:  dec  R17
63
          brne WGOOP3
64
; ----------------------------- 
65
; warte 1 Zyklus:
66
          nop
67
; ============================= 
68
warte10s:
69
; ============================= 
70
;   Warteschleifen-Generator 
71
;     160000000 Zyklen:
72
; ----------------------------- 
73
; warte 49939965 Zyklen:
74
          ldi  R17, $FF
75
WGLOO1P0:  ldi  R18, $FF
76
WGLOO1P1:  ldi  R19, $FF
77
WGLOO1P2:  dec  R19
78
          brne WGLOO1P2
79
          dec  R18
80
          brne WGLOO1P1
81
          dec  R17
82
          brne WGLOO1P0
83
; ----------------------------- 
84
; warte 49939965 Zyklen:
85
          ldi  R17, $FF
86
WGLOO1P3:  ldi  R18, $FF
87
WGLOO1P4:  ldi  R19, $FF
88
WGLOO1P5:  dec  R19
89
          brne WGLOO1P5
90
          dec  R18
91
          brne WGLOO1P4
92
          dec  R17
93
          brne WGLOO1P3
94
; ----------------------------- 
95
; warte 49939965 Zyklen:
96
          ldi  R17, $FF
97
WGLOO1P6:  ldi  R18, $FF
98
WGLOO1P7:  ldi  R19, $FF
99
WGLOO1P8:  dec  R19
100
          brne WGLOO1P8
101
          dec  R18
102
          brne WGLOO1P7
103
          dec  R17
104
          brne WGLOO1P6
105
; ----------------------------- 
106
; warte 10180104 Zyklen:
107
          ldi  R17, $58
108
WGLOO1P9:  ldi  R18, $A0
109
WGLOO1P10: ldi  R19, $F0
110
WGLOO1P11: dec  R19
111
          brne WGLOO1P11
112
          dec  R18
113
          brne WGLOO1P10
114
          dec  R17
115
          brne WGLOO1P9
116
; ----------------------------- 
117
; warte 1 Zyklus:
118
          nop
119
; ============================= 
120
warte2ms:
121
out PORTC,r19
122
; ============================= 
123
;   Warteschleifen-Generator 
124
;     32000 Zyklen:
125
; ----------------------------- 
126
; warte 31995 Zyklen:
127
          ldi  R17, $2D
128
WGLOOP0:  ldi  R18, $EC
129
WGLOOP1:  dec  R18
130
          brne WGLOOP1
131
          dec  R17
132
          brne WGLOOP0
133
; ----------------------------- 
134
; warte 3 Zyklen:
135
          ldi  R17, $01
136
WGLOOP2:  dec  R17
137
          brne WGLOOP2
138
; ----------------------------- 
139
; warte 2 Zyklen:
140
          nop
141
          nop
142
; ============================= 
143
out PORTC,r20
144
145
warte18ms:
146
; ============================= 
147
;   Warteschleifen-Generator 
148
;     288000 Zyklen:
149
; ----------------------------- 
150
; warte 287994 Zyklen:
151
          ldi  R17, $02
152
GLOOP0:  ldi  R18, $CE
153
GLOOP1:  ldi  R19, $E8
154
GLOOP2:  dec  R19
155
          brne GLOOP2
156
          dec  R18
157
          brne GLOOP1
158
          dec  R17
159
          brne GLOOP0
160
; ----------------------------- 
161
; warte 6 Zyklen:
162
          ldi  R17, $02
163
GLOOP3:  dec  R17
164
          brne GLOOP3
165
; ============================= 
166
167
wait10s:
168
; ============================= 
169
;   Warteschleifen-Generator 
170
;     160000000 Zyklen:
171
; ----------------------------- 
172
; warte 49939965 Zyklen:
173
          ldi  R17, $FF
174
WGLOO11P0:  ldi  R18, $FF
175
WGLOO11P1:  ldi  R19, $FF
176
WGLOO11P2:  dec  R19
177
          brne WGLOO11P2
178
          dec  R18
179
          brne WGLOO11P1
180
          dec  R17
181
          brne WGLOO11P0
182
; ----------------------------- 
183
; warte 49939965 Zyklen:
184
          ldi  R17, $FF
185
WGLOO11P3:  ldi  R18, $FF
186
WGLOO11P4:  ldi  R19, $FF
187
WGLOO11P5:  dec  R19
188
          brne WGLOO11P5
189
          dec  R18
190
          brne WGLOO11P4
191
          dec  R17
192
          brne WGLOO11P3
193
; ----------------------------- 
194
; warte 49939965 Zyklen:
195
          ldi  R17, $FF
196
WGLOO11P6:  ldi  R18, $FF
197
WGLOO11P7:  ldi  R19, $FF
198
WGLOO11P8:  dec  R19
199
          brne WGLOO11P8
200
          dec  R18
201
          brne WGLOO11P7
202
          dec  R17
203
          brne WGLOO11P6
204
; ----------------------------- 
205
; warte 10180104 Zyklen:
206
          ldi  R17, $58
207
WGLOO11P9:  ldi  R18, $A0
208
WGLOO11P10: ldi  R19, $F0
209
WGLOO11P11: dec  R19
210
          brne WGLOO11P11
211
          dec  R18
212
          brne WGLOO11P10
213
          dec  R17
214
          brne WGLOO11P9
215
; ----------------------------- 
216
; warte 1 Zyklus:
217
          nop
218
; ============================= 
219
rjmp warte1ms