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
|
|