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

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [core/] [sim/] [rtl_sim/] [src/] [tA_capture.s43] - Diff between revs 2 and 18

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 2 Rev 18
/*===========================================================================*/
/*===========================================================================*/
/* Copyright (C) 2001 Authors                                                */
/* Copyright (C) 2001 Authors                                                */
/*                                                                           */
/*                                                                           */
/* This source file may be used and distributed without restriction provided */
/* This source file may be used and distributed without restriction provided */
/* that this copyright statement is not removed from the file and that any   */
/* that this copyright statement is not removed from the file and that any   */
/* derivative work contains the original copyright notice and the associated */
/* derivative work contains the original copyright notice and the associated */
/* disclaimer.                                                               */
/* disclaimer.                                                               */
/*                                                                           */
/*                                                                           */
/* This source file is free software; you can redistribute it and/or modify  */
/* This source file is free software; you can redistribute it and/or modify  */
/* it under the terms of the GNU Lesser General Public License as published  */
/* it under the terms of the GNU Lesser General Public License as published  */
/* by the Free Software Foundation; either version 2.1 of the License, or    */
/* by the Free Software Foundation; either version 2.1 of the License, or    */
/* (at your option) any later version.                                       */
/* (at your option) any later version.                                       */
/*                                                                           */
/*                                                                           */
/* This source is distributed in the hope that it will be useful, but WITHOUT*/
/* This source is distributed in the hope that it will be useful, but WITHOUT*/
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or     */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or     */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public       */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public       */
/* License for more details.                                                 */
/* License for more details.                                                 */
/*                                                                           */
/*                                                                           */
/* You should have received a copy of the GNU Lesser General Public License  */
/* You should have received a copy of the GNU Lesser General Public License  */
/* along with this source; if not, write to the Free Software Foundation,    */
/* along with this source; if not, write to the Free Software Foundation,    */
/* Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA        */
/* Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA        */
/*                                                                           */
/*                                                                           */
/*===========================================================================*/
/*===========================================================================*/
/*                                  TIMER A                                  */
/*                                  TIMER A                                  */
/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
/* Test the timer A:                                                         */
/* Test the timer A:                                                         */
/*                        - Check the timer capture unit.                    */
/*                        - Check the timer capture unit.                    */
 
/*                                                                           */
 
/* Author(s):                                                                */
 
/*             - Olivier Girard,    olgirard@gmail.com                       */
 
/*                                                                           */
 
/*---------------------------------------------------------------------------*/
 
/* $Rev: 17 $                                                                */
 
/* $LastChangedBy: olivier.girard $                                          */
 
/* $LastChangedDate: 2009-08-04 23:15:39 +0200 (Tue, 04 Aug 2009) $          */
/*===========================================================================*/
/*===========================================================================*/
.global main
.global main
.set   TACTL,   0x0160
.set   TACTL,   0x0160
.set   TAR,     0x0170
.set   TAR,     0x0170
.set   TACCTL0, 0x0162
.set   TACCTL0, 0x0162
.set   TACCR0,  0x0172
.set   TACCR0,  0x0172
.set   TACCTL1, 0x0164
.set   TACCTL1, 0x0164
.set   TACCR1,  0x0174
.set   TACCR1,  0x0174
.set   TACCTL2, 0x0166
.set   TACCTL2, 0x0166
.set   TACCR2,  0x0176
.set   TACCR2,  0x0176
.set   TAIV,    0x012E
.set   TAIV,    0x012E
WAIT_FUNC:
WAIT_FUNC:
        dec r14
        dec r14
        jnz WAIT_FUNC
        jnz WAIT_FUNC
        ret
        ret
main:
main:
        mov  #0x0250, r1        ; # Initialize stack pointer
        mov  #0x0250, r1        ; # Initialize stack pointer
        mov  #0x0000, &0x0200
        mov  #0x0000, &0x0200
        mov  #0x0000, r15
        mov  #0x0000, r15
       /* --------------   TIMER A TEST:  INPUT MUX (CCI) ----------------- */
       /* --------------   TIMER A TEST:  INPUT MUX (CCI) ----------------- */
        mov  #0x0200, &TACTL
        mov  #0x0200, &TACTL
        mov  #0x0000, &TACCTL0
        mov  #0x0000, &TACCTL0
        mov  #0x0000, &TACCTL1
        mov  #0x0000, &TACCTL1
        mov  #0x0000, &TACCTL2
        mov  #0x0000, &TACCTL2
        dint
        dint
                                ; # --------- Comparator 0 ----------
                                ; # --------- Comparator 0 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x0000, &TACCR0
        mov  #0x0000, &TACCR0
        mov  #0x0000, &TACCTL0  ; # CCIxA
        mov  #0x0000, &TACCTL0  ; # CCIxA
        mov  #0x0001, &0x0200
        mov  #0x0001, &0x0200
        mov &TACCTL0, &0x0202
        mov &TACCTL0, &0x0202
        mov  #0x0002, &0x0200
        mov  #0x0002, &0x0200
        mov &TACCTL0, &0x0204
        mov &TACCTL0, &0x0204
        mov  #0x0003, &0x0200
        mov  #0x0003, &0x0200
        mov  #0x1000, &TACCTL0  ; # CCIxB
        mov  #0x1000, &TACCTL0  ; # CCIxB
        mov  #0x0004, &0x0200
        mov  #0x0004, &0x0200
        mov &TACCTL0, &0x0202
        mov &TACCTL0, &0x0202
        mov  #0x0005, &0x0200
        mov  #0x0005, &0x0200
        mov &TACCTL0, &0x0204
        mov &TACCTL0, &0x0204
        mov  #0x0006, &0x0200
        mov  #0x0006, &0x0200
        mov  #0x2000, &TACCTL0  ; # GND
        mov  #0x2000, &TACCTL0  ; # GND
        mov  #0x0007, &0x0200
        mov  #0x0007, &0x0200
        mov &TACCTL0, &0x0202
        mov &TACCTL0, &0x0202
        mov  #0x0008, &0x0200
        mov  #0x0008, &0x0200
        mov &TACCTL0, &0x0204
        mov &TACCTL0, &0x0204
        mov  #0x0009, &0x0200
        mov  #0x0009, &0x0200
        mov  #0x3000, &TACCTL0  ; # VDD
        mov  #0x3000, &TACCTL0  ; # VDD
        mov  #0x000A, &0x0200
        mov  #0x000A, &0x0200
        mov &TACCTL0, &0x0202
        mov &TACCTL0, &0x0202
        mov  #0x000B, &0x0200
        mov  #0x000B, &0x0200
        mov &TACCTL0, &0x0204
        mov &TACCTL0, &0x0204
        mov  #0x000C, &0x0200
        mov  #0x000C, &0x0200
                                ; # --------- Comparator 1 ----------
                                ; # --------- Comparator 1 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCTL1  ; # CCIxA
        mov  #0x0000, &TACCTL1  ; # CCIxA
        mov  #0x0011, &0x0200
        mov  #0x0011, &0x0200
        mov &TACCTL1, &0x0202
        mov &TACCTL1, &0x0202
        mov  #0x0012, &0x0200
        mov  #0x0012, &0x0200
        mov &TACCTL1, &0x0204
        mov &TACCTL1, &0x0204
        mov  #0x0013, &0x0200
        mov  #0x0013, &0x0200
        mov  #0x1000, &TACCTL1  ; # CCIxB
        mov  #0x1000, &TACCTL1  ; # CCIxB
        mov  #0x0014, &0x0200
        mov  #0x0014, &0x0200
        mov &TACCTL1, &0x0202
        mov &TACCTL1, &0x0202
        mov  #0x0015, &0x0200
        mov  #0x0015, &0x0200
        mov &TACCTL1, &0x0204
        mov &TACCTL1, &0x0204
        mov  #0x0016, &0x0200
        mov  #0x0016, &0x0200
        mov  #0x2000, &TACCTL1  ; # GND
        mov  #0x2000, &TACCTL1  ; # GND
        mov  #0x0017, &0x0200
        mov  #0x0017, &0x0200
        mov &TACCTL1, &0x0202
        mov &TACCTL1, &0x0202
        mov  #0x0018, &0x0200
        mov  #0x0018, &0x0200
        mov &TACCTL1, &0x0204
        mov &TACCTL1, &0x0204
        mov  #0x0019, &0x0200
        mov  #0x0019, &0x0200
        mov  #0x3000, &TACCTL1  ; # VDD
        mov  #0x3000, &TACCTL1  ; # VDD
        mov  #0x001A, &0x0200
        mov  #0x001A, &0x0200
        mov &TACCTL1, &0x0202
        mov &TACCTL1, &0x0202
        mov  #0x001B, &0x0200
        mov  #0x001B, &0x0200
        mov &TACCTL1, &0x0204
        mov &TACCTL1, &0x0204
        mov  #0x001C, &0x0200
        mov  #0x001C, &0x0200
                                ; # --------- Comparator 2 ----------
                                ; # --------- Comparator 2 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCTL2  ; # CCIxA
        mov  #0x0000, &TACCTL2  ; # CCIxA
        mov  #0x0021, &0x0200
        mov  #0x0021, &0x0200
        mov &TACCTL2, &0x0202
        mov &TACCTL2, &0x0202
        mov  #0x0022, &0x0200
        mov  #0x0022, &0x0200
        mov &TACCTL2, &0x0204
        mov &TACCTL2, &0x0204
        mov  #0x0023, &0x0200
        mov  #0x0023, &0x0200
        mov  #0x1000, &TACCTL2  ; # CCIxB
        mov  #0x1000, &TACCTL2  ; # CCIxB
        mov  #0x0024, &0x0200
        mov  #0x0024, &0x0200
        mov &TACCTL2, &0x0202
        mov &TACCTL2, &0x0202
        mov  #0x0025, &0x0200
        mov  #0x0025, &0x0200
        mov &TACCTL2, &0x0204
        mov &TACCTL2, &0x0204
        mov  #0x0026, &0x0200
        mov  #0x0026, &0x0200
        mov  #0x2000, &TACCTL2  ; # GND
        mov  #0x2000, &TACCTL2  ; # GND
        mov  #0x0027, &0x0200
        mov  #0x0027, &0x0200
        mov &TACCTL2, &0x0202
        mov &TACCTL2, &0x0202
        mov  #0x0028, &0x0200
        mov  #0x0028, &0x0200
        mov &TACCTL2, &0x0204
        mov &TACCTL2, &0x0204
        mov  #0x0029, &0x0200
        mov  #0x0029, &0x0200
        mov  #0x3000, &TACCTL2  ; # VDD
        mov  #0x3000, &TACCTL2  ; # VDD
        mov  #0x002A, &0x0200
        mov  #0x002A, &0x0200
        mov &TACCTL2, &0x0202
        mov &TACCTL2, &0x0202
        mov  #0x002B, &0x0200
        mov  #0x002B, &0x0200
        mov &TACCTL2, &0x0204
        mov &TACCTL2, &0x0204
        mov  #0x002C, &0x0200
        mov  #0x002C, &0x0200
        dint
        dint
        mov  #0x0000, &0x0200
        mov  #0x0000, &0x0200
        mov  #0x1000, r15
        mov  #0x1000, r15
       /* --------------   TIMER A TEST:  CAPTURE, EDGE SELECTION AND INTERRUPT ----------------- */
       /* --------------   TIMER A TEST:  CAPTURE, EDGE SELECTION AND INTERRUPT ----------------- */
        mov  #0x0200, &TACTL
        mov  #0x0200, &TACTL
        mov  #0x0000, &TACCTL0
        mov  #0x0000, &TACCTL0
        mov  #0x0000, &TACCTL1
        mov  #0x0000, &TACCTL1
        mov  #0x0000, &TACCTL2
        mov  #0x0000, &TACCTL2
        dint
        dint
                                ; # --------- Comparator 0 ----------
                                ; # --------- Comparator 0 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x1234, &TAR
        mov  #0x1234, &TAR
        mov  #0x0110, &TACCTL0  ; # No capture, Interrupt enable
        mov  #0x0110, &TACCTL0  ; # No capture, Interrupt enable
        mov  #0x0000, &TACCR0
        mov  #0x0000, &TACCR0
        mov  #0x0001, &0x0200
        mov  #0x0001, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR0, &0x0202
        mov  &TACCR0, &0x0202
        mov  #0x0110, &TACCTL0  ; # No capture, Interrupt enable
        mov  #0x0110, &TACCTL0  ; # No capture, Interrupt enable
        mov  #0x0000, &TACCR0
        mov  #0x0000, &TACCR0
        mov  #0x0002, &0x0200
        mov  #0x0002, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR0, &0x0204
        mov  &TACCR0, &0x0204
        mov  #0x0000, &TACCTL0
        mov  #0x0000, &TACCTL0
        mov  #0x0003, &0x0200
        mov  #0x0003, &0x0200
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x1234, &TAR
        mov  #0x1234, &TAR
        mov  #0x4110, &TACCTL0  ; # Rising edge, Interrupt enable
        mov  #0x4110, &TACCTL0  ; # Rising edge, Interrupt enable
        mov  #0x0000, &TACCR0
        mov  #0x0000, &TACCR0
        mov  #0x0004, &0x0200
        mov  #0x0004, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR0, &0x0202
        mov  &TACCR0, &0x0202
        mov  #0x4110, &TACCTL0  ; # Rising edge, Interrupt enable
        mov  #0x4110, &TACCTL0  ; # Rising edge, Interrupt enable
        mov  #0x0000, &TACCR0
        mov  #0x0000, &TACCR0
        mov  #0x0005, &0x0200
        mov  #0x0005, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR0, &0x0204
        mov  &TACCR0, &0x0204
        mov  #0x0000, &TACCTL0
        mov  #0x0000, &TACCTL0
        mov  #0x0006, &0x0200
        mov  #0x0006, &0x0200
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x1234, &TAR
        mov  #0x1234, &TAR
        mov  #0x8110, &TACCTL0  ; # Falling edge, Interrupt enable
        mov  #0x8110, &TACCTL0  ; # Falling edge, Interrupt enable
        mov  #0x0000, &TACCR0
        mov  #0x0000, &TACCR0
        mov  #0x0007, &0x0200
        mov  #0x0007, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR0, &0x0202
        mov  &TACCR0, &0x0202
        mov  #0x8110, &TACCTL0  ; # Falling edge, Interrupt enable
        mov  #0x8110, &TACCTL0  ; # Falling edge, Interrupt enable
        mov  #0x0000, &TACCR0
        mov  #0x0000, &TACCR0
        mov  #0x0008, &0x0200
        mov  #0x0008, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR0, &0x0204
        mov  &TACCR0, &0x0204
        mov  #0x0000, &TACCTL0
        mov  #0x0000, &TACCTL0
        mov  #0x0009, &0x0200
        mov  #0x0009, &0x0200
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x1234, &TAR
        mov  #0x1234, &TAR
        mov  #0xC110, &TACCTL0  ; # Rising/Falling edge, Interrupt enable
        mov  #0xC110, &TACCTL0  ; # Rising/Falling edge, Interrupt enable
        mov  #0x0000, &TACCR0
        mov  #0x0000, &TACCR0
        mov  #0x000A, &0x0200
        mov  #0x000A, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR0, &0x0202
        mov  &TACCR0, &0x0202
        mov  #0xC110, &TACCTL0  ; # Rising/Falling edge, Interrupt enable
        mov  #0xC110, &TACCTL0  ; # Rising/Falling edge, Interrupt enable
        mov  #0x0000, &TACCR0
        mov  #0x0000, &TACCR0
        mov  #0x000B, &0x0200
        mov  #0x000B, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR0, &0x0204
        mov  &TACCR0, &0x0204
        mov  #0x0000, &TACCTL0
        mov  #0x0000, &TACCTL0
        mov  #0x000C, &0x0200
        mov  #0x000C, &0x0200
                                ; # --------- Comparator 1 ----------
                                ; # --------- Comparator 1 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x1234, &TAR
        mov  #0x1234, &TAR
        mov  #0x0110, &TACCTL1  ; # No capture, Interrupt enable
        mov  #0x0110, &TACCTL1  ; # No capture, Interrupt enable
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCR1
        mov  #0x0001, &0x0200
        mov  #0x0001, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR1, &0x0202
        mov  &TACCR1, &0x0202
        mov  #0x0110, &TACCTL1  ; # No capture, Interrupt enable
        mov  #0x0110, &TACCTL1  ; # No capture, Interrupt enable
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCR1
        mov  #0x0002, &0x0200
        mov  #0x0002, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR1, &0x0204
        mov  &TACCR1, &0x0204
        mov  #0x0000, &TACCTL1
        mov  #0x0000, &TACCTL1
        mov  #0x0003, &0x0200
        mov  #0x0003, &0x0200
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x1234, &TAR
        mov  #0x1234, &TAR
        mov  #0x4110, &TACCTL1  ; # Rising edge, Interrupt enable
        mov  #0x4110, &TACCTL1  ; # Rising edge, Interrupt enable
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCR1
        mov  #0x0004, &0x0200
        mov  #0x0004, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR1, &0x0202
        mov  &TACCR1, &0x0202
        mov  #0x4110, &TACCTL1  ; # Rising edge, Interrupt enable
        mov  #0x4110, &TACCTL1  ; # Rising edge, Interrupt enable
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCR1
        mov  #0x0005, &0x0200
        mov  #0x0005, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR1, &0x0204
        mov  &TACCR1, &0x0204
        mov  #0x0000, &TACCTL1
        mov  #0x0000, &TACCTL1
        mov  #0x0006, &0x0200
        mov  #0x0006, &0x0200
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x1234, &TAR
        mov  #0x1234, &TAR
        mov  #0x8110, &TACCTL1  ; # Falling edge, Interrupt enable
        mov  #0x8110, &TACCTL1  ; # Falling edge, Interrupt enable
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCR1
        mov  #0x0007, &0x0200
        mov  #0x0007, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR1, &0x0202
        mov  &TACCR1, &0x0202
        mov  #0x8110, &TACCTL1  ; # Falling edge, Interrupt enable
        mov  #0x8110, &TACCTL1  ; # Falling edge, Interrupt enable
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCR1
        mov  #0x0008, &0x0200
        mov  #0x0008, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR1, &0x0204
        mov  &TACCR1, &0x0204
        mov  #0x0000, &TACCTL1
        mov  #0x0000, &TACCTL1
        mov  #0x0009, &0x0200
        mov  #0x0009, &0x0200
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x1234, &TAR
        mov  #0x1234, &TAR
        mov  #0xC110, &TACCTL1  ; # Rising/Falling edge, Interrupt enable
        mov  #0xC110, &TACCTL1  ; # Rising/Falling edge, Interrupt enable
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCR1
        mov  #0x000A, &0x0200
        mov  #0x000A, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR1, &0x0202
        mov  &TACCR1, &0x0202
        mov  #0xC110, &TACCTL1  ; # Rising/Falling edge, Interrupt enable
        mov  #0xC110, &TACCTL1  ; # Rising/Falling edge, Interrupt enable
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCR1
        mov  #0x000B, &0x0200
        mov  #0x000B, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR1, &0x0204
        mov  &TACCR1, &0x0204
        mov  #0x0000, &TACCTL1
        mov  #0x0000, &TACCTL1
        mov  #0x000C, &0x0200
        mov  #0x000C, &0x0200
                                ; # --------- Comparator 2 ----------
                                ; # --------- Comparator 2 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x1234, &TAR
        mov  #0x1234, &TAR
        mov  #0x0110, &TACCTL2  ; # No capture, Interrupt enable
        mov  #0x0110, &TACCTL2  ; # No capture, Interrupt enable
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCR2
        mov  #0x0001, &0x0200
        mov  #0x0001, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR2, &0x0202
        mov  &TACCR2, &0x0202
        mov  #0x0110, &TACCTL2  ; # No capture, Interrupt enable
        mov  #0x0110, &TACCTL2  ; # No capture, Interrupt enable
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCR2
        mov  #0x0002, &0x0200
        mov  #0x0002, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR2, &0x0204
        mov  &TACCR2, &0x0204
        mov  #0x0000, &TACCTL2
        mov  #0x0000, &TACCTL2
        mov  #0x0003, &0x0200
        mov  #0x0003, &0x0200
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x1234, &TAR
        mov  #0x1234, &TAR
        mov  #0x4110, &TACCTL2  ; # Rising edge, Interrupt enable
        mov  #0x4110, &TACCTL2  ; # Rising edge, Interrupt enable
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCR2
        mov  #0x0004, &0x0200
        mov  #0x0004, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR2, &0x0202
        mov  &TACCR2, &0x0202
        mov  #0x4110, &TACCTL2  ; # Rising edge, Interrupt enable
        mov  #0x4110, &TACCTL2  ; # Rising edge, Interrupt enable
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCR2
        mov  #0x0005, &0x0200
        mov  #0x0005, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR2, &0x0204
        mov  &TACCR2, &0x0204
        mov  #0x0000, &TACCTL2
        mov  #0x0000, &TACCTL2
        mov  #0x0006, &0x0200
        mov  #0x0006, &0x0200
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x1234, &TAR
        mov  #0x1234, &TAR
        mov  #0x8110, &TACCTL2  ; # Falling edge, Interrupt enable
        mov  #0x8110, &TACCTL2  ; # Falling edge, Interrupt enable
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCR2
        mov  #0x0007, &0x0200
        mov  #0x0007, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR2, &0x0202
        mov  &TACCR2, &0x0202
        mov  #0x8110, &TACCTL2  ; # Falling edge, Interrupt enable
        mov  #0x8110, &TACCTL2  ; # Falling edge, Interrupt enable
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCR2
        mov  #0x0008, &0x0200
        mov  #0x0008, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR2, &0x0204
        mov  &TACCR2, &0x0204
        mov  #0x0000, &TACCTL2
        mov  #0x0000, &TACCTL2
        mov  #0x0009, &0x0200
        mov  #0x0009, &0x0200
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x1234, &TAR
        mov  #0x1234, &TAR
        mov  #0xC110, &TACCTL2  ; # Rising/Falling edge, Interrupt enable
        mov  #0xC110, &TACCTL2  ; # Rising/Falling edge, Interrupt enable
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCR2
        mov  #0x000A, &0x0200
        mov  #0x000A, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR2, &0x0202
        mov  &TACCR2, &0x0202
        mov  #0xC110, &TACCTL2  ; # Rising/Falling edge, Interrupt enable
        mov  #0xC110, &TACCTL2  ; # Rising/Falling edge, Interrupt enable
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCR2
        mov  #0x000B, &0x0200
        mov  #0x000B, &0x0200
        nop
        nop
        nop
        nop
        mov  &TACCR2, &0x0204
        mov  &TACCR2, &0x0204
        mov  #0x0000, &TACCTL2
        mov  #0x0000, &TACCTL2
        mov  #0x000C, &0x0200
        mov  #0x000C, &0x0200
        dint
        dint
        mov  #0x0000, &0x0200
        mov  #0x0000, &0x0200
        mov  #0x2000, r15
        mov  #0x2000, r15
       /* --------------   TIMER A TEST:  CAPTURE OVERFLOW ----------------- */
       /* --------------   TIMER A TEST:  CAPTURE OVERFLOW ----------------- */
        mov  #0x0200, &TACTL
        mov  #0x0200, &TACTL
        mov  #0x0000, &TACCTL0
        mov  #0x0000, &TACCTL0
        mov  #0x0000, &TACCTL1
        mov  #0x0000, &TACCTL1
        mov  #0x0000, &TACCTL2
        mov  #0x0000, &TACCTL2
        dint
        dint
                                ; # --------- Comparator 0 ----------
                                ; # --------- Comparator 0 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0xC000, &TACCTL0  ; # Both edges:    No read -> overflow
        mov  #0xC000, &TACCTL0  ; # Both edges:    No read -> overflow
        mov  #0x0001, &0x0200
        mov  #0x0001, &0x0200
        nop
        nop
        nop
        nop
        mov &TACCTL0, &0x0202
        mov &TACCTL0, &0x0202
        mov  #0x0002, &0x0200
        mov  #0x0002, &0x0200
        nop
        nop
        nop
        nop
        mov &TACCTL0, &0x0204
        mov &TACCTL0, &0x0204
        mov  #0x0000, &TACCTL0
        mov  #0x0000, &TACCTL0
        mov  #0x0003, &0x0200
        mov  #0x0003, &0x0200
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0xC000, &TACCTL0  ; # Both edges:    Read -> no overflow
        mov  #0xC000, &TACCTL0  ; # Both edges:    Read -> no overflow
        mov  #0x0004, &0x0200
        mov  #0x0004, &0x0200
        nop
        nop
        nop
        nop
        mov &TACCTL0, &0x0202
        mov &TACCTL0, &0x0202
        mov  &TACCR0, r10       ; # Read
        mov  &TACCR0, r10       ; # Read
        mov  #0x0005, &0x0200
        mov  #0x0005, &0x0200
        nop
        nop
        nop
        nop
        mov &TACCTL0, &0x0204
        mov &TACCTL0, &0x0204
        mov  #0x0000, &TACCTL0
        mov  #0x0000, &TACCTL0
        mov  #0x0006, &0x0200
        mov  #0x0006, &0x0200
                                ; # --------- Comparator 1 ----------
                                ; # --------- Comparator 1 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0xC000, &TACCTL1  ; # Both edges:    No read -> overflow
        mov  #0xC000, &TACCTL1  ; # Both edges:    No read -> overflow
        mov  #0x0001, &0x0200
        mov  #0x0001, &0x0200
        nop
        nop
        nop
        nop
        mov &TACCTL1, &0x0202
        mov &TACCTL1, &0x0202
        mov  #0x0002, &0x0200
        mov  #0x0002, &0x0200
        nop
        nop
        nop
        nop
        mov &TACCTL1, &0x0204
        mov &TACCTL1, &0x0204
        mov  #0x0000, &TACCTL1
        mov  #0x0000, &TACCTL1
        mov  #0x0003, &0x0200
        mov  #0x0003, &0x0200
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0xC000, &TACCTL1  ; # Both edges:    Read -> no overflow
        mov  #0xC000, &TACCTL1  ; # Both edges:    Read -> no overflow
        mov  #0x0004, &0x0200
        mov  #0x0004, &0x0200
        nop
        nop
        nop
        nop
        mov &TACCTL1, &0x0202
        mov &TACCTL1, &0x0202
        mov  &TACCR1, r10       ; # Read
        mov  &TACCR1, r10       ; # Read
        mov  #0x0005, &0x0200
        mov  #0x0005, &0x0200
        nop
        nop
        nop
        nop
        mov &TACCTL1, &0x0204
        mov &TACCTL1, &0x0204
        mov  #0x0000, &TACCTL1
        mov  #0x0000, &TACCTL1
        mov  #0x0006, &0x0200
        mov  #0x0006, &0x0200
                                ; # --------- Comparator 2 ----------
                                ; # --------- Comparator 2 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0xC000, &TACCTL2  ; # Both edges:    No read -> overflow
        mov  #0xC000, &TACCTL2  ; # Both edges:    No read -> overflow
        mov  #0x0001, &0x0200
        mov  #0x0001, &0x0200
        nop
        nop
        nop
        nop
        mov &TACCTL2, &0x0202
        mov &TACCTL2, &0x0202
        mov  #0x0002, &0x0200
        mov  #0x0002, &0x0200
        nop
        nop
        nop
        nop
        mov &TACCTL2, &0x0204
        mov &TACCTL2, &0x0204
        mov  #0x0000, &TACCTL2
        mov  #0x0000, &TACCTL2
        mov  #0x0003, &0x0200
        mov  #0x0003, &0x0200
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0xC000, &TACCTL2  ; # Both edges:    Read -> no overflow
        mov  #0xC000, &TACCTL2  ; # Both edges:    Read -> no overflow
        mov  #0x0004, &0x0200
        mov  #0x0004, &0x0200
        nop
        nop
        nop
        nop
        mov &TACCTL2, &0x0202
        mov &TACCTL2, &0x0202
        mov  &TACCR2, r10       ; # Read
        mov  &TACCR2, r10       ; # Read
        mov  #0x0005, &0x0200
        mov  #0x0005, &0x0200
        nop
        nop
        nop
        nop
        mov &TACCTL2, &0x0204
        mov &TACCTL2, &0x0204
        mov  #0x0000, &TACCTL2
        mov  #0x0000, &TACCTL2
        mov  #0x0006, &0x0200
        mov  #0x0006, &0x0200
        dint
        dint
        mov  #0x0000, &0x0200
        mov  #0x0000, &0x0200
        mov  #0x3000, r15
        mov  #0x3000, r15
        /* ----------------------         END OF TEST        --------------- */
        /* ----------------------         END OF TEST        --------------- */
end_of_test:
end_of_test:
        nop
        nop
        br #0xffff
        br #0xffff
        /* ----------------------      INTERRUPT ROUTINES    --------------- */
        /* ----------------------      INTERRUPT ROUTINES    --------------- */
TIMERA_CCR0_VECTOR:
TIMERA_CCR0_VECTOR:
        inc  &0x0200
        inc  &0x0200
        reti
        reti
TIMERA_TAIV_VECTOR:
TIMERA_TAIV_VECTOR:
        mov     &TAR, &0x0204
        mov     &TAR, &0x0204
        mov    &TAIV, &0x0206
        mov    &TAIV, &0x0206
        reti
        reti
        /* ----------------------         INTERRUPT VECTORS  --------------- */
        /* ----------------------         INTERRUPT VECTORS  --------------- */
.section .vectors, "a"
.section .vectors, "a"
.word end_of_test        ; Interrupt  0 (lowest priority)    
.word end_of_test        ; Interrupt  0 (lowest priority)    
.word end_of_test        ; Interrupt  1                      
.word end_of_test        ; Interrupt  1                      
.word end_of_test        ; Interrupt  2                      
.word end_of_test        ; Interrupt  2                      
.word end_of_test        ; Interrupt  3                      
.word end_of_test        ; Interrupt  3                      
.word end_of_test        ; Interrupt  4                      
.word end_of_test        ; Interrupt  4                      
.word end_of_test        ; Interrupt  5                      
.word end_of_test        ; Interrupt  5                      
.word end_of_test        ; Interrupt  6                      
.word end_of_test        ; Interrupt  6                      
.word end_of_test        ; Interrupt  7                      
.word end_of_test        ; Interrupt  7                      
.word TIMERA_TAIV_VECTOR ; Interrupt  8                      
.word TIMERA_TAIV_VECTOR ; Interrupt  8                      
.word TIMERA_CCR0_VECTOR ; Interrupt  9                      
.word TIMERA_CCR0_VECTOR ; Interrupt  9                      
.word end_of_test        ; Interrupt 10                      Watchdog timer
.word end_of_test        ; Interrupt 10                      Watchdog timer
.word end_of_test        ; Interrupt 11                      
.word end_of_test        ; Interrupt 11                      
.word end_of_test        ; Interrupt 12                      
.word end_of_test        ; Interrupt 12                      
.word end_of_test        ; Interrupt 13                      
.word end_of_test        ; Interrupt 13                      
.word end_of_test        ; Interrupt 14                      NMI
.word end_of_test        ; Interrupt 14                      NMI
.word main               ; Interrupt 15 (highest priority)   RESET
.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.