OpenCores
URL https://opencores.org/ocsvn/openmsp430/openmsp430/trunk

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [core/] [sim/] [rtl_sim/] [src/] [tA_capture.s43] - Blame information for rev 122

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 olivier.gi
/*===========================================================================*/
2
/* Copyright (C) 2001 Authors                                                */
3
/*                                                                           */
4
/* This source file may be used and distributed without restriction provided */
5
/* that this copyright statement is not removed from the file and that any   */
6
/* derivative work contains the original copyright notice and the associated */
7
/* disclaimer.                                                               */
8
/*                                                                           */
9
/* This source file is free software; you can redistribute it and/or modify  */
10
/* it under the terms of the GNU Lesser General Public License as published  */
11
/* by the Free Software Foundation; either version 2.1 of the License, or    */
12
/* (at your option) any later version.                                       */
13
/*                                                                           */
14
/* This source is distributed in the hope that it will be useful, but WITHOUT*/
15
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or     */
16
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public       */
17
/* License for more details.                                                 */
18
/*                                                                           */
19
/* You should have received a copy of the GNU Lesser General Public License  */
20
/* along with this source; if not, write to the Free Software Foundation,    */
21
/* Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA        */
22
/*                                                                           */
23
/*===========================================================================*/
24
/*                                  TIMER A                                  */
25
/*---------------------------------------------------------------------------*/
26
/* Test the timer A:                                                         */
27
/*                        - Check the timer capture unit.                    */
28 18 olivier.gi
/*                                                                           */
29
/* Author(s):                                                                */
30
/*             - Olivier Girard,    olgirard@gmail.com                       */
31
/*                                                                           */
32
/*---------------------------------------------------------------------------*/
33 19 olivier.gi
/* $Rev: 111 $                                                                */
34
/* $LastChangedBy: olivier.girard $                                          */
35
/* $LastChangedDate: 2011-05-20 22:39:02 +0200 (Fri, 20 May 2011) $          */
36 2 olivier.gi
/*===========================================================================*/
37
 
38
.global main
39
 
40 111 olivier.gi
.set   DMEM_BASE, (__data_start     )
41
.set   DMEM_200,  (__data_start+0x00)
42
.set   DMEM_202,  (__data_start+0x02)
43
.set   DMEM_204,  (__data_start+0x04)
44
.set   DMEM_206,  (__data_start+0x06)
45
.set   DMEM_250,  (__data_start+0x50)
46
 
47 2 olivier.gi
.set   TACTL,   0x0160
48
.set   TAR,     0x0170
49
.set   TACCTL0, 0x0162
50
.set   TACCR0,  0x0172
51
.set   TACCTL1, 0x0164
52
.set   TACCR1,  0x0174
53
.set   TACCTL2, 0x0166
54
.set   TACCR2,  0x0176
55
.set   TAIV,    0x012E
56
 
57
 
58
WAIT_FUNC:
59
        dec r14
60
        jnz WAIT_FUNC
61
        ret
62
 
63
main:
64 111 olivier.gi
        mov  #DMEM_250, r1      ; # Initialize stack pointer
65
        mov  #0x0000, &DMEM_200
66 2 olivier.gi
        mov  #0x0000, r15
67
 
68
       /* --------------   TIMER A TEST:  INPUT MUX (CCI) ----------------- */
69
 
70
        mov  #0x0200, &TACTL
71
        mov  #0x0000, &TACCTL0
72
        mov  #0x0000, &TACCTL1
73
        mov  #0x0000, &TACCTL2
74
        dint
75
 
76
                                ; # --------- Comparator 0 ----------
77
        mov  #0x0204, &TACTL
78
        mov  #0x0000, &TACCR0
79
        mov  #0x0000, &TACCTL0  ; # CCIxA
80 111 olivier.gi
        mov  #0x0001, &DMEM_200
81
        mov &TACCTL0, &DMEM_202
82
        mov  #0x0002, &DMEM_200
83
        mov &TACCTL0, &DMEM_204
84
        mov  #0x0003, &DMEM_200
85 2 olivier.gi
 
86
        mov  #0x1000, &TACCTL0  ; # CCIxB
87 111 olivier.gi
        mov  #0x0004, &DMEM_200
88
        mov &TACCTL0, &DMEM_202
89
        mov  #0x0005, &DMEM_200
90
        mov &TACCTL0, &DMEM_204
91
        mov  #0x0006, &DMEM_200
92 2 olivier.gi
 
93
        mov  #0x2000, &TACCTL0  ; # GND
94 111 olivier.gi
        mov  #0x0007, &DMEM_200
95
        mov &TACCTL0, &DMEM_202
96
        mov  #0x0008, &DMEM_200
97
        mov &TACCTL0, &DMEM_204
98
        mov  #0x0009, &DMEM_200
99 2 olivier.gi
 
100
        mov  #0x3000, &TACCTL0  ; # VDD
101 111 olivier.gi
        mov  #0x000A, &DMEM_200
102
        mov &TACCTL0, &DMEM_202
103
        mov  #0x000B, &DMEM_200
104
        mov &TACCTL0, &DMEM_204
105
        mov  #0x000C, &DMEM_200
106 2 olivier.gi
 
107
                                ; # --------- Comparator 1 ----------
108
        mov  #0x0204, &TACTL
109
        mov  #0x0000, &TACCR1
110
        mov  #0x0000, &TACCTL1  ; # CCIxA
111 111 olivier.gi
        mov  #0x0011, &DMEM_200
112
        mov &TACCTL1, &DMEM_202
113
        mov  #0x0012, &DMEM_200
114
        mov &TACCTL1, &DMEM_204
115
        mov  #0x0013, &DMEM_200
116 2 olivier.gi
 
117
        mov  #0x1000, &TACCTL1  ; # CCIxB
118 111 olivier.gi
        mov  #0x0014, &DMEM_200
119
        mov &TACCTL1, &DMEM_202
120
        mov  #0x0015, &DMEM_200
121
        mov &TACCTL1, &DMEM_204
122
        mov  #0x0016, &DMEM_200
123 2 olivier.gi
 
124
        mov  #0x2000, &TACCTL1  ; # GND
125 111 olivier.gi
        mov  #0x0017, &DMEM_200
126
        mov &TACCTL1, &DMEM_202
127
        mov  #0x0018, &DMEM_200
128
        mov &TACCTL1, &DMEM_204
129
        mov  #0x0019, &DMEM_200
130 2 olivier.gi
 
131
        mov  #0x3000, &TACCTL1  ; # VDD
132 111 olivier.gi
        mov  #0x001A, &DMEM_200
133
        mov &TACCTL1, &DMEM_202
134
        mov  #0x001B, &DMEM_200
135
        mov &TACCTL1, &DMEM_204
136
        mov  #0x001C, &DMEM_200
137 2 olivier.gi
 
138
                                ; # --------- Comparator 2 ----------
139
        mov  #0x0204, &TACTL
140
        mov  #0x0000, &TACCR2
141
        mov  #0x0000, &TACCTL2  ; # CCIxA
142 111 olivier.gi
        mov  #0x0021, &DMEM_200
143
        mov &TACCTL2, &DMEM_202
144
        mov  #0x0022, &DMEM_200
145
        mov &TACCTL2, &DMEM_204
146
        mov  #0x0023, &DMEM_200
147 2 olivier.gi
 
148
        mov  #0x1000, &TACCTL2  ; # CCIxB
149 111 olivier.gi
        mov  #0x0024, &DMEM_200
150
        mov &TACCTL2, &DMEM_202
151
        mov  #0x0025, &DMEM_200
152
        mov &TACCTL2, &DMEM_204
153
        mov  #0x0026, &DMEM_200
154 2 olivier.gi
 
155
        mov  #0x2000, &TACCTL2  ; # GND
156 111 olivier.gi
        mov  #0x0027, &DMEM_200
157
        mov &TACCTL2, &DMEM_202
158
        mov  #0x0028, &DMEM_200
159
        mov &TACCTL2, &DMEM_204
160
        mov  #0x0029, &DMEM_200
161 2 olivier.gi
 
162
        mov  #0x3000, &TACCTL2  ; # VDD
163 111 olivier.gi
        mov  #0x002A, &DMEM_200
164
        mov &TACCTL2, &DMEM_202
165
        mov  #0x002B, &DMEM_200
166
        mov &TACCTL2, &DMEM_204
167
        mov  #0x002C, &DMEM_200
168 2 olivier.gi
 
169
 
170
        dint
171 111 olivier.gi
        mov  #0x0000, &DMEM_200
172 2 olivier.gi
        mov  #0x1000, r15
173
 
174
       /* --------------   TIMER A TEST:  CAPTURE, EDGE SELECTION AND INTERRUPT ----------------- */
175
 
176
        mov  #0x0200, &TACTL
177
        mov  #0x0000, &TACCTL0
178
        mov  #0x0000, &TACCTL1
179
        mov  #0x0000, &TACCTL2
180
        dint
181
 
182
                                ; # --------- Comparator 0 ----------
183
        mov  #0x0204, &TACTL
184
        mov  #0x1234, &TAR
185
        mov  #0x0110, &TACCTL0  ; # No capture, Interrupt enable
186
        mov  #0x0000, &TACCR0
187 111 olivier.gi
        mov  #0x0001, &DMEM_200
188 2 olivier.gi
        nop
189
        nop
190 111 olivier.gi
        mov  &TACCR0, &DMEM_202
191 2 olivier.gi
        mov  #0x0110, &TACCTL0  ; # No capture, Interrupt enable
192
        mov  #0x0000, &TACCR0
193 111 olivier.gi
        mov  #0x0002, &DMEM_200
194 2 olivier.gi
        nop
195
        nop
196 111 olivier.gi
        mov  &TACCR0, &DMEM_204
197 2 olivier.gi
        mov  #0x0000, &TACCTL0
198 111 olivier.gi
        mov  #0x0003, &DMEM_200
199 2 olivier.gi
 
200
        mov  #0x0204, &TACTL
201
        mov  #0x1234, &TAR
202
        mov  #0x4110, &TACCTL0  ; # Rising edge, Interrupt enable
203
        mov  #0x0000, &TACCR0
204 111 olivier.gi
        mov  #0x0004, &DMEM_200
205 2 olivier.gi
        nop
206
        nop
207 111 olivier.gi
        mov  &TACCR0, &DMEM_202
208 2 olivier.gi
        mov  #0x4110, &TACCTL0  ; # Rising edge, Interrupt enable
209
        mov  #0x0000, &TACCR0
210 111 olivier.gi
        mov  #0x0005, &DMEM_200
211 2 olivier.gi
        nop
212
        nop
213 111 olivier.gi
        mov  &TACCR0, &DMEM_204
214 2 olivier.gi
        mov  #0x0000, &TACCTL0
215 111 olivier.gi
        mov  #0x0006, &DMEM_200
216 2 olivier.gi
 
217
        mov  #0x0204, &TACTL
218
        mov  #0x1234, &TAR
219
        mov  #0x8110, &TACCTL0  ; # Falling edge, Interrupt enable
220
        mov  #0x0000, &TACCR0
221 111 olivier.gi
        mov  #0x0007, &DMEM_200
222 2 olivier.gi
        nop
223
        nop
224 111 olivier.gi
        mov  &TACCR0, &DMEM_202
225 2 olivier.gi
        mov  #0x8110, &TACCTL0  ; # Falling edge, Interrupt enable
226
        mov  #0x0000, &TACCR0
227 111 olivier.gi
        mov  #0x0008, &DMEM_200
228 2 olivier.gi
        nop
229
        nop
230 111 olivier.gi
        mov  &TACCR0, &DMEM_204
231 2 olivier.gi
        mov  #0x0000, &TACCTL0
232 111 olivier.gi
        mov  #0x0009, &DMEM_200
233 2 olivier.gi
 
234
        mov  #0x0204, &TACTL
235
        mov  #0x1234, &TAR
236
        mov  #0xC110, &TACCTL0  ; # Rising/Falling edge, Interrupt enable
237
        mov  #0x0000, &TACCR0
238 111 olivier.gi
        mov  #0x000A, &DMEM_200
239 2 olivier.gi
        nop
240
        nop
241 111 olivier.gi
        mov  &TACCR0, &DMEM_202
242 2 olivier.gi
        mov  #0xC110, &TACCTL0  ; # Rising/Falling edge, Interrupt enable
243
        mov  #0x0000, &TACCR0
244 111 olivier.gi
        mov  #0x000B, &DMEM_200
245 2 olivier.gi
        nop
246
        nop
247 111 olivier.gi
        mov  &TACCR0, &DMEM_204
248 2 olivier.gi
        mov  #0x0000, &TACCTL0
249 111 olivier.gi
        mov  #0x000C, &DMEM_200
250 2 olivier.gi
 
251
 
252
                                ; # --------- Comparator 1 ----------
253
        mov  #0x0204, &TACTL
254
        mov  #0x1234, &TAR
255
        mov  #0x0110, &TACCTL1  ; # No capture, Interrupt enable
256
        mov  #0x0000, &TACCR1
257 111 olivier.gi
        mov  #0x0001, &DMEM_200
258 2 olivier.gi
        nop
259
        nop
260 111 olivier.gi
        mov  &TACCR1, &DMEM_202
261 2 olivier.gi
        mov  #0x0110, &TACCTL1  ; # No capture, Interrupt enable
262
        mov  #0x0000, &TACCR1
263 111 olivier.gi
        mov  #0x0002, &DMEM_200
264 2 olivier.gi
        nop
265
        nop
266 111 olivier.gi
        mov  &TACCR1, &DMEM_204
267 2 olivier.gi
        mov  #0x0000, &TACCTL1
268 111 olivier.gi
        mov  #0x0003, &DMEM_200
269 2 olivier.gi
 
270
        mov  #0x0204, &TACTL
271
        mov  #0x1234, &TAR
272
        mov  #0x4110, &TACCTL1  ; # Rising edge, Interrupt enable
273
        mov  #0x0000, &TACCR1
274 111 olivier.gi
        mov  #0x0004, &DMEM_200
275 2 olivier.gi
        nop
276
        nop
277 111 olivier.gi
        mov  &TACCR1, &DMEM_202
278 2 olivier.gi
        mov  #0x4110, &TACCTL1  ; # Rising edge, Interrupt enable
279
        mov  #0x0000, &TACCR1
280 111 olivier.gi
        mov  #0x0005, &DMEM_200
281 2 olivier.gi
        nop
282
        nop
283 111 olivier.gi
        mov  &TACCR1, &DMEM_204
284 2 olivier.gi
        mov  #0x0000, &TACCTL1
285 111 olivier.gi
        mov  #0x0006, &DMEM_200
286 2 olivier.gi
 
287
        mov  #0x0204, &TACTL
288
        mov  #0x1234, &TAR
289
        mov  #0x8110, &TACCTL1  ; # Falling edge, Interrupt enable
290
        mov  #0x0000, &TACCR1
291 111 olivier.gi
        mov  #0x0007, &DMEM_200
292 2 olivier.gi
        nop
293
        nop
294 111 olivier.gi
        mov  &TACCR1, &DMEM_202
295 2 olivier.gi
        mov  #0x8110, &TACCTL1  ; # Falling edge, Interrupt enable
296
        mov  #0x0000, &TACCR1
297 111 olivier.gi
        mov  #0x0008, &DMEM_200
298 2 olivier.gi
        nop
299
        nop
300 111 olivier.gi
        mov  &TACCR1, &DMEM_204
301 2 olivier.gi
        mov  #0x0000, &TACCTL1
302 111 olivier.gi
        mov  #0x0009, &DMEM_200
303 2 olivier.gi
 
304
        mov  #0x0204, &TACTL
305
        mov  #0x1234, &TAR
306
        mov  #0xC110, &TACCTL1  ; # Rising/Falling edge, Interrupt enable
307
        mov  #0x0000, &TACCR1
308 111 olivier.gi
        mov  #0x000A, &DMEM_200
309 2 olivier.gi
        nop
310
        nop
311 111 olivier.gi
        mov  &TACCR1, &DMEM_202
312 2 olivier.gi
        mov  #0xC110, &TACCTL1  ; # Rising/Falling edge, Interrupt enable
313
        mov  #0x0000, &TACCR1
314 111 olivier.gi
        mov  #0x000B, &DMEM_200
315 2 olivier.gi
        nop
316
        nop
317 111 olivier.gi
        mov  &TACCR1, &DMEM_204
318 2 olivier.gi
        mov  #0x0000, &TACCTL1
319 111 olivier.gi
        mov  #0x000C, &DMEM_200
320 2 olivier.gi
 
321
 
322
                                ; # --------- Comparator 2 ----------
323
        mov  #0x0204, &TACTL
324
        mov  #0x1234, &TAR
325
        mov  #0x0110, &TACCTL2  ; # No capture, Interrupt enable
326
        mov  #0x0000, &TACCR2
327 111 olivier.gi
        mov  #0x0001, &DMEM_200
328 2 olivier.gi
        nop
329
        nop
330 111 olivier.gi
        mov  &TACCR2, &DMEM_202
331 2 olivier.gi
        mov  #0x0110, &TACCTL2  ; # No capture, Interrupt enable
332
        mov  #0x0000, &TACCR2
333 111 olivier.gi
        mov  #0x0002, &DMEM_200
334 2 olivier.gi
        nop
335
        nop
336 111 olivier.gi
        mov  &TACCR2, &DMEM_204
337 2 olivier.gi
        mov  #0x0000, &TACCTL2
338 111 olivier.gi
        mov  #0x0003, &DMEM_200
339 2 olivier.gi
 
340
        mov  #0x0204, &TACTL
341
        mov  #0x1234, &TAR
342
        mov  #0x4110, &TACCTL2  ; # Rising edge, Interrupt enable
343
        mov  #0x0000, &TACCR2
344 111 olivier.gi
        mov  #0x0004, &DMEM_200
345 2 olivier.gi
        nop
346
        nop
347 111 olivier.gi
        mov  &TACCR2, &DMEM_202
348 2 olivier.gi
        mov  #0x4110, &TACCTL2  ; # Rising edge, Interrupt enable
349
        mov  #0x0000, &TACCR2
350 111 olivier.gi
        mov  #0x0005, &DMEM_200
351 2 olivier.gi
        nop
352
        nop
353 111 olivier.gi
        mov  &TACCR2, &DMEM_204
354 2 olivier.gi
        mov  #0x0000, &TACCTL2
355 111 olivier.gi
        mov  #0x0006, &DMEM_200
356 2 olivier.gi
 
357
        mov  #0x0204, &TACTL
358
        mov  #0x1234, &TAR
359
        mov  #0x8110, &TACCTL2  ; # Falling edge, Interrupt enable
360
        mov  #0x0000, &TACCR2
361 111 olivier.gi
        mov  #0x0007, &DMEM_200
362 2 olivier.gi
        nop
363
        nop
364 111 olivier.gi
        mov  &TACCR2, &DMEM_202
365 2 olivier.gi
        mov  #0x8110, &TACCTL2  ; # Falling edge, Interrupt enable
366
        mov  #0x0000, &TACCR2
367 111 olivier.gi
        mov  #0x0008, &DMEM_200
368 2 olivier.gi
        nop
369
        nop
370 111 olivier.gi
        mov  &TACCR2, &DMEM_204
371 2 olivier.gi
        mov  #0x0000, &TACCTL2
372 111 olivier.gi
        mov  #0x0009, &DMEM_200
373 2 olivier.gi
 
374
        mov  #0x0204, &TACTL
375
        mov  #0x1234, &TAR
376
        mov  #0xC110, &TACCTL2  ; # Rising/Falling edge, Interrupt enable
377
        mov  #0x0000, &TACCR2
378 111 olivier.gi
        mov  #0x000A, &DMEM_200
379 2 olivier.gi
        nop
380
        nop
381 111 olivier.gi
        mov  &TACCR2, &DMEM_202
382 2 olivier.gi
        mov  #0xC110, &TACCTL2  ; # Rising/Falling edge, Interrupt enable
383
        mov  #0x0000, &TACCR2
384 111 olivier.gi
        mov  #0x000B, &DMEM_200
385 2 olivier.gi
        nop
386
        nop
387 111 olivier.gi
        mov  &TACCR2, &DMEM_204
388 2 olivier.gi
        mov  #0x0000, &TACCTL2
389 111 olivier.gi
        mov  #0x000C, &DMEM_200
390 2 olivier.gi
 
391
 
392
        dint
393 111 olivier.gi
        mov  #0x0000, &DMEM_200
394 2 olivier.gi
        mov  #0x2000, r15
395
 
396
       /* --------------   TIMER A TEST:  CAPTURE OVERFLOW ----------------- */
397
 
398
        mov  #0x0200, &TACTL
399
        mov  #0x0000, &TACCTL0
400
        mov  #0x0000, &TACCTL1
401
        mov  #0x0000, &TACCTL2
402
        dint
403
 
404
                                ; # --------- Comparator 0 ----------
405
        mov  #0x0204, &TACTL
406
        mov  #0xC000, &TACCTL0  ; # Both edges:    No read -> overflow
407 111 olivier.gi
        mov  #0x0001, &DMEM_200
408 2 olivier.gi
        nop
409
        nop
410 111 olivier.gi
        mov &TACCTL0, &DMEM_202
411
        mov  #0x0002, &DMEM_200
412 2 olivier.gi
        nop
413
        nop
414 111 olivier.gi
        mov &TACCTL0, &DMEM_204
415 2 olivier.gi
        mov  #0x0000, &TACCTL0
416 111 olivier.gi
        mov  #0x0003, &DMEM_200
417 2 olivier.gi
 
418
        mov  #0x0204, &TACTL
419
        mov  #0xC000, &TACCTL0  ; # Both edges:    Read -> no overflow
420 111 olivier.gi
        mov  #0x0004, &DMEM_200
421 2 olivier.gi
        nop
422
        nop
423 111 olivier.gi
        mov &TACCTL0, &DMEM_202
424 2 olivier.gi
        mov  &TACCR0, r10       ; # Read
425 111 olivier.gi
        mov  #0x0005, &DMEM_200
426 2 olivier.gi
        nop
427
        nop
428 111 olivier.gi
        mov &TACCTL0, &DMEM_204
429 2 olivier.gi
        mov  #0x0000, &TACCTL0
430 111 olivier.gi
        mov  #0x0006, &DMEM_200
431 2 olivier.gi
 
432
                                ; # --------- Comparator 1 ----------
433
        mov  #0x0204, &TACTL
434
        mov  #0xC000, &TACCTL1  ; # Both edges:    No read -> overflow
435 111 olivier.gi
        mov  #0x0001, &DMEM_200
436 2 olivier.gi
        nop
437
        nop
438 111 olivier.gi
        mov &TACCTL1, &DMEM_202
439
        mov  #0x0002, &DMEM_200
440 2 olivier.gi
        nop
441
        nop
442 111 olivier.gi
        mov &TACCTL1, &DMEM_204
443 2 olivier.gi
        mov  #0x0000, &TACCTL1
444 111 olivier.gi
        mov  #0x0003, &DMEM_200
445 2 olivier.gi
 
446
        mov  #0x0204, &TACTL
447
        mov  #0xC000, &TACCTL1  ; # Both edges:    Read -> no overflow
448 111 olivier.gi
        mov  #0x0004, &DMEM_200
449 2 olivier.gi
        nop
450
        nop
451 111 olivier.gi
        mov &TACCTL1, &DMEM_202
452 2 olivier.gi
        mov  &TACCR1, r10       ; # Read
453 111 olivier.gi
        mov  #0x0005, &DMEM_200
454 2 olivier.gi
        nop
455
        nop
456 111 olivier.gi
        mov &TACCTL1, &DMEM_204
457 2 olivier.gi
        mov  #0x0000, &TACCTL1
458 111 olivier.gi
        mov  #0x0006, &DMEM_200
459 2 olivier.gi
 
460
                                ; # --------- Comparator 2 ----------
461
        mov  #0x0204, &TACTL
462
        mov  #0xC000, &TACCTL2  ; # Both edges:    No read -> overflow
463 111 olivier.gi
        mov  #0x0001, &DMEM_200
464 2 olivier.gi
        nop
465
        nop
466 111 olivier.gi
        mov &TACCTL2, &DMEM_202
467
        mov  #0x0002, &DMEM_200
468 2 olivier.gi
        nop
469
        nop
470 111 olivier.gi
        mov &TACCTL2, &DMEM_204
471 2 olivier.gi
        mov  #0x0000, &TACCTL2
472 111 olivier.gi
        mov  #0x0003, &DMEM_200
473 2 olivier.gi
 
474
        mov  #0x0204, &TACTL
475
        mov  #0xC000, &TACCTL2  ; # Both edges:    Read -> no overflow
476 111 olivier.gi
        mov  #0x0004, &DMEM_200
477 2 olivier.gi
        nop
478
        nop
479 111 olivier.gi
        mov &TACCTL2, &DMEM_202
480 2 olivier.gi
        mov  &TACCR2, r10       ; # Read
481 111 olivier.gi
        mov  #0x0005, &DMEM_200
482 2 olivier.gi
        nop
483
        nop
484 111 olivier.gi
        mov &TACCTL2, &DMEM_204
485 2 olivier.gi
        mov  #0x0000, &TACCTL2
486 111 olivier.gi
        mov  #0x0006, &DMEM_200
487 2 olivier.gi
 
488
        dint
489 111 olivier.gi
        mov  #0x0000, &DMEM_200
490 2 olivier.gi
        mov  #0x3000, r15
491
 
492
 
493
        /* ----------------------         END OF TEST        --------------- */
494
end_of_test:
495
        nop
496
        br #0xffff
497
 
498
 
499
        /* ----------------------      INTERRUPT ROUTINES    --------------- */
500
 
501
TIMERA_CCR0_VECTOR:
502 111 olivier.gi
        inc  &DMEM_200
503 2 olivier.gi
        reti
504
 
505
 
506
TIMERA_TAIV_VECTOR:
507 111 olivier.gi
        mov     &TAR, &DMEM_204
508
        mov    &TAIV, &DMEM_206
509 2 olivier.gi
        reti
510
 
511
 
512
        /* ----------------------         INTERRUPT VECTORS  --------------- */
513
 
514
.section .vectors, "a"
515
.word end_of_test        ; Interrupt  0 (lowest priority)    
516
.word end_of_test        ; Interrupt  1                      
517
.word end_of_test        ; Interrupt  2                      
518
.word end_of_test        ; Interrupt  3                      
519
.word end_of_test        ; Interrupt  4                      
520
.word end_of_test        ; Interrupt  5                      
521
.word end_of_test        ; Interrupt  6                      
522
.word end_of_test        ; Interrupt  7                      
523
.word TIMERA_TAIV_VECTOR ; Interrupt  8                      
524
.word TIMERA_CCR0_VECTOR ; Interrupt  9                      
525
.word end_of_test        ; Interrupt 10                      Watchdog timer
526
.word end_of_test        ; Interrupt 11                      
527
.word end_of_test        ; Interrupt 12                      
528
.word end_of_test        ; Interrupt 13                      
529
.word end_of_test        ; Interrupt 14                      NMI
530
.word main               ; Interrupt 15 (highest priority)   RESET

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.