Mercurial > public > mk2
comparison code_part1/OSTC_code_asm_part1/alt_wait.asm @ 0:96a35aeda5f2
Initial setup
author | heinrichsweikamp |
---|---|
date | Tue, 12 Jan 2010 15:05:59 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:96a35aeda5f2 |
---|---|
1 ; OSTC - diving computer code | |
2 ; Copyright (C) 2008 HeinrichsWeikamp GbR | |
3 ; This program is free software: you can redistribute it and/or modify | |
4 ; it under the terms of the GNU General Public License as published by | |
5 ; the Free Software Foundation, either version 3 of the License, or | |
6 ; (at your option) any later version. | |
7 ; This program is distributed in the hope that it will be useful, | |
8 ; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
9 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
10 ; GNU General Public License for more details. | |
11 ; You should have received a copy of the GNU General Public License | |
12 ; along with this program. If not, see <http://www.gnu.org/licenses/>. | |
13 ; Wait routines | |
14 ; written by: chsw, info@heinrichsweikamp.com | |
15 ; written: 01/31/04 | |
16 ; last updated: 11/05/07 | |
17 ; known bugs: | |
18 ; ToDo: | |
19 IFDEF Clk_4_MHZ | |
20 MESSG "wait_v2i: switched to 4 MHZ operation" | |
21 ELSE | |
22 IFDEF Clk_8_MHZ | |
23 MESSG "wait_v2i: switched to 8 MHZ operation" | |
24 ELSE | |
25 IFDEF Clk_16_MHZ | |
26 MESSG "wait_v2i: switched to 16 MHZ operation" | |
27 ELSE | |
28 IFDEF Clk_20_MHZ | |
29 MESSG "wait_v2i: switched to 20 MHZ operation" | |
30 ELSE | |
31 ERROR "wait_v2i: Operating Frequency has to be specified by #DEFINE Clk_4_MHZ or Clk_8_MHZ" | |
32 ENDIF | |
33 ENDIF | |
34 ENDIF | |
35 IFDEF Clk_16_MHZ | |
36 ; ========================================================== | |
37 ; WAIT 10 MICROSECONDS - 16 MHZ | |
38 ; ========================================================== | |
39 WAIT10US macro wait_temp | |
40 movlw wait_temp | |
41 IFNDEF DEBUG | |
42 call WAIT10USX | |
43 ENDIF | |
44 endm | |
45 | |
46 WAIT10USX movwf wait_temp | |
47 goto JumpIn10us | |
48 WAIT10USX2 nop | |
49 nop | |
50 nop | |
51 nop | |
52 nop | |
53 nop | |
54 nop | |
55 nop | |
56 nop | |
57 JumpIn10us: | |
58 nop | |
59 nop | |
60 nop | |
61 nop | |
62 nop | |
63 nop | |
64 nop | |
65 nop | |
66 nop | |
67 nop | |
68 nop | |
69 nop | |
70 nop | |
71 nop | |
72 nop | |
73 nop | |
74 nop | |
75 nop | |
76 nop | |
77 nop | |
78 nop | |
79 nop | |
80 nop | |
81 nop | |
82 nop | |
83 nop | |
84 nop | |
85 nop | |
86 decfsz wait_temp,1 | |
87 goto WAIT10USX2 | |
88 return | |
89 ; ========================================================== | |
90 ; WAIT 1 MILLISECOND - 16 MHZ | |
91 ; ========================================================== | |
92 WAITMS macro waitms_temp | |
93 movlw waitms_temp | |
94 IFNDEF DEBUG | |
95 call WAITMSX | |
96 ENDIF | |
97 endm | |
98 WAITMSX movwf waitms_temp | |
99 goto JumpInMSX | |
100 WAITMSX2 nop | |
101 nop | |
102 nop | |
103 nop | |
104 nop | |
105 nop | |
106 nop | |
107 nop | |
108 nop | |
109 JumpInMSX: | |
110 nop | |
111 nop | |
112 nop | |
113 nop | |
114 nop | |
115 nop | |
116 nop | |
117 nop | |
118 nop | |
119 nop | |
120 nop | |
121 nop | |
122 nop | |
123 nop | |
124 nop | |
125 nop | |
126 nop | |
127 nop | |
128 nop | |
129 nop | |
130 nop | |
131 nop | |
132 nop | |
133 nop | |
134 nop | |
135 nop | |
136 nop | |
137 nop | |
138 nop | |
139 WAIT10US d'99' | |
140 decfsz waitms_temp,1 | |
141 goto WAITMSX2 | |
142 return | |
143 ELSE | |
144 IFDEF Clk_8_MHZ | |
145 ; ========================================================== | |
146 ; WAIT 10 MICROSECONDS - 8 MHZ | |
147 ; ========================================================== | |
148 WAIT10US macro wait_temp | |
149 movlw wait_temp | |
150 IFNDEF DEBUG | |
151 call WAIT10USX | |
152 ENDIF | |
153 endm | |
154 WAIT10USX movwf wait_temp | |
155 goto JumpIn10us | |
156 WAIT10USX2 nop | |
157 nop | |
158 nop | |
159 nop | |
160 nop | |
161 nop | |
162 nop | |
163 JumpIn10us: | |
164 nop | |
165 nop | |
166 nop | |
167 nop | |
168 nop | |
169 nop | |
170 nop | |
171 nop | |
172 nop | |
173 nop | |
174 decfsz wait_temp,1 | |
175 goto WAIT10USX2 | |
176 return | |
177 ; ========================================================== | |
178 ; WAIT 1 MILLISECOND - 8 MHZ | |
179 ; ========================================================== | |
180 WAITMS macro waitms_temp | |
181 movlw waitms_temp | |
182 IFNDEF DEBUG | |
183 call WAITMSX | |
184 ENDIF | |
185 endm | |
186 WAITMSX movwf waitms_temp | |
187 goto JumpInMSX | |
188 | |
189 WAITMSX2 nop | |
190 nop | |
191 nop | |
192 nop | |
193 nop | |
194 nop | |
195 nop | |
196 JumpInMSX: | |
197 nop | |
198 nop | |
199 nop | |
200 nop | |
201 nop | |
202 nop | |
203 nop | |
204 nop | |
205 nop | |
206 nop | |
207 WAIT10US d'99' | |
208 decfsz waitms_temp,1 | |
209 goto WAITMSX2 | |
210 return | |
211 ELSE | |
212 IFDEF Clk_4_MHZ | |
213 ; ========================================================== | |
214 ; WAIT 10 MICROSECONDS - 4 MHZ | |
215 ; ========================================================== | |
216 WAIT10US macro wait_temp | |
217 movlw wait_temp | |
218 IFNDEF DEBUG | |
219 call WAIT10USX | |
220 ENDIF | |
221 endm | |
222 WAIT10USX movwf wait_temp | |
223 goto JumpIn10us | |
224 WAIT10USX2 nop | |
225 nop | |
226 nop | |
227 nop | |
228 nop | |
229 nop | |
230 nop | |
231 JumpIn10us: | |
232 decfsz wait_temp,1 | |
233 goto WAIT10USX2 | |
234 return | |
235 ; ========================================================== | |
236 ; WAIT 1 MILLISECOND - 4 MHZ | |
237 ; ========================================================== | |
238 WAITMS macro waitms_temp | |
239 movlw waitms_temp | |
240 IFNDEF DEBUG | |
241 call WAITMSX | |
242 ENDIF | |
243 endm | |
244 WAITMSX movwf waitms_temp | |
245 goto JumpInMSX | |
246 | |
247 WAITMSX2 nop | |
248 nop | |
249 nop | |
250 nop | |
251 nop | |
252 nop | |
253 nop | |
254 JumpInMSX: | |
255 WAIT10US d'99' | |
256 decfsz waitms_temp,1 | |
257 goto WAITMSX2 | |
258 return | |
259 ELSE | |
260 IFDEF Clk_20_MHZ | |
261 ========================================================== | |
262 ; WAIT 10 MICROSECONDS - 20 MHZ | |
263 ; ========================================================== | |
264 WAIT10US macro wait_temp | |
265 movlw wait_temp | |
266 IFNDEF DEBUG | |
267 call WAIT10USX | |
268 ENDIF | |
269 endm | |
270 WAIT10USX movwf wait_temp | |
271 goto JumpIn10us | |
272 WAIT10USX2 nop | |
273 nop | |
274 nop | |
275 nop | |
276 nop | |
277 nop | |
278 nop | |
279 JumpIn10us: | |
280 nop | |
281 nop | |
282 nop | |
283 nop | |
284 nop | |
285 nop | |
286 nop | |
287 nop | |
288 nop | |
289 nop | |
290 nop | |
291 nop | |
292 nop | |
293 nop | |
294 nop | |
295 nop | |
296 nop | |
297 nop | |
298 nop | |
299 nop | |
300 nop | |
301 nop | |
302 nop | |
303 nop | |
304 nop | |
305 nop | |
306 nop | |
307 nop | |
308 nop | |
309 nop | |
310 nop | |
311 nop | |
312 nop | |
313 nop | |
314 nop | |
315 nop | |
316 nop | |
317 nop | |
318 nop | |
319 nop | |
320 decfsz wait_temp,1 | |
321 goto WAIT10USX2 | |
322 return | |
323 ; ========================================================== | |
324 ; WAIT 1 MILLISECOND - 20 MHZ | |
325 ; ========================================================== | |
326 WAITMS macro waitms_temp | |
327 movlw waitms_temp | |
328 IFNDEF DEBUG | |
329 call WAITMSX | |
330 ENDIF | |
331 endm | |
332 WAITMSX movwf waitms_temp | |
333 goto JumpInMSX | |
334 | |
335 WAITMSX2 nop | |
336 nop | |
337 nop | |
338 nop | |
339 nop | |
340 nop | |
341 nop | |
342 JumpInMSX: | |
343 nop | |
344 nop | |
345 nop | |
346 nop | |
347 nop | |
348 nop | |
349 nop | |
350 nop | |
351 nop | |
352 nop | |
353 nop | |
354 nop | |
355 nop | |
356 nop | |
357 nop | |
358 nop | |
359 nop | |
360 nop | |
361 nop | |
362 nop | |
363 nop | |
364 nop | |
365 nop | |
366 nop | |
367 nop | |
368 nop | |
369 nop | |
370 nop | |
371 nop | |
372 nop | |
373 nop | |
374 nop | |
375 nop | |
376 nop | |
377 nop | |
378 nop | |
379 nop | |
380 nop | |
381 nop | |
382 nop | |
383 WAIT10US d'99' | |
384 decfsz waitms_temp,1 | |
385 goto WAITMSX2 | |
386 return | |
387 ENDIF | |
388 ENDIF | |
389 ENDIF | |
390 ENDIF | |
391 ENDIF | |
392 | |
393 | |
394 wait_one_second: | |
395 WAITMS d'250' | |
396 WAITMS d'250' | |
397 WAITMS d'250' | |
398 WAITMS d'250' | |
399 return |