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

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [core/] [sim/] [rtl_sim/] [src/] [tA_compare.s43] - Diff between revs 19 and 111

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 19 Rev 111
Line 28... Line 28...
/*                                                                           */
/*                                                                           */
/* Author(s):                                                                */
/* Author(s):                                                                */
/*             - Olivier Girard,    olgirard@gmail.com                       */
/*             - Olivier Girard,    olgirard@gmail.com                       */
/*                                                                           */
/*                                                                           */
/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
/* $Rev: 19 $                                                                */
/* $Rev: 111 $                                                                */
/* $LastChangedBy: olivier.girard $                                          */
/* $LastChangedBy: olivier.girard $                                          */
/* $LastChangedDate: 2009-08-04 23:47:15 +0200 (Tue, 04 Aug 2009) $          */
/* $LastChangedDate: 2011-05-20 22:39:02 +0200 (Fri, 20 May 2011) $          */
/*===========================================================================*/
/*===========================================================================*/
 
 
.global main
.global main
 
 
 
.set   DMEM_BASE, (__data_start     )
 
.set   DMEM_200,  (__data_start+0x00)
 
.set   DMEM_202,  (__data_start+0x02)
 
.set   DMEM_204,  (__data_start+0x04)
 
.set   DMEM_206,  (__data_start+0x06)
 
.set   DMEM_208,  (__data_start+0x08)
 
.set   DMEM_212,  (__data_start+0x12)
 
.set   DMEM_214,  (__data_start+0x14)
 
.set   DMEM_216,  (__data_start+0x16)
 
.set   DMEM_218,  (__data_start+0x18)
 
.set   DMEM_222,  (__data_start+0x22)
 
.set   DMEM_224,  (__data_start+0x24)
 
.set   DMEM_226,  (__data_start+0x26)
 
.set   DMEM_228,  (__data_start+0x28)
 
.set   DMEM_250,  (__data_start+0x50)
 
 
.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
Line 52... Line 68...
        dec r14
        dec r14
        jnz WAIT_FUNC
        jnz WAIT_FUNC
        ret
        ret
 
 
main:
main:
        mov  #0x0250, r1        ; # Initialize stack pointer
        mov  #DMEM_250, r1      ; # Initialize stack pointer
        mov  #0x0000, &0x0200
        mov  #0x0000, &DMEM_200
 
 
 
 
       /* --------------   TIMER A TEST:  UP MODE   ----------------- */
       /* --------------   TIMER A TEST:  UP MODE   ----------------- */
 
 
        mov  #0x0200, &TACTL
        mov  #0x0200, &TACTL
Line 73... Line 89...
        mov  #0x0000, &TACCR1   ; #
        mov  #0x0000, &TACCR1   ; #
        mov  #0x0000, &TACCTL1  ; # Disabled
        mov  #0x0000, &TACCTL1  ; # Disabled
        mov  #0x0000, &TACCR2   ; #
        mov  #0x0000, &TACCR2   ; #
        mov  #0x0000, &TACCTL2  ; # Disabled
        mov  #0x0000, &TACCTL2  ; # Disabled
        mov  #0x0256, &TACTL    ; # Up-mode & clk/2, IRQ enabled
        mov  #0x0256, &TACTL    ; # Up-mode & clk/2, IRQ enabled
        mov  #0x0001, &0x0200
        mov  #0x0001, &DMEM_200
        mov  #0x0010, r14
        mov  #0x0010, r14
        call #WAIT_FUNC
        call #WAIT_FUNC
 
 
                                ; # --------- COMPARATOR 1 ----------
                                ; # --------- COMPARATOR 1 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
Line 87... Line 103...
        mov  #0x0005, &TACCR1   ; #
        mov  #0x0005, &TACCR1   ; #
        mov  #0x0090, &TACCTL1  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCTL1  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0000, &TACCR2   ; #
        mov  #0x0000, &TACCR2   ; #
        mov  #0x0000, &TACCTL2  ; # Disabled
        mov  #0x0000, &TACCTL2  ; # Disabled
        mov  #0x0254, &TACTL    ; # Up-mode & clk/2
        mov  #0x0254, &TACTL    ; # Up-mode & clk/2
        mov  #0x0002, &0x0200
        mov  #0x0002, &DMEM_200
        mov  #0x0008, r14
        mov  #0x0008, r14
        call #WAIT_FUNC
        call #WAIT_FUNC
 
 
                                ; # --------- COMPARATOR 2 ----------
                                ; # --------- COMPARATOR 2 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
Line 101... Line 117...
        mov  #0x0000, &TACCR1   ; #
        mov  #0x0000, &TACCR1   ; #
        mov  #0x0000, &TACCTL1  ; # Disabled
        mov  #0x0000, &TACCTL1  ; # Disabled
        mov  #0x000C, &TACCR2   ; #
        mov  #0x000C, &TACCR2   ; #
        mov  #0x0090, &TACCTL2  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCTL2  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0254, &TACTL    ; # Up-mode & clk/2
        mov  #0x0254, &TACTL    ; # Up-mode & clk/2
        mov  #0x0003, &0x0200
        mov  #0x0003, &DMEM_200
        mov  #0x0008, r14
        mov  #0x0008, r14
        call #WAIT_FUNC
        call #WAIT_FUNC
 
 
 
 
        dint
        dint
        mov  #0x0000, &0x0200
        mov  #0x0000, &DMEM_200
        mov  #0x1000, r15
        mov  #0x1000, r15
 
 
 
 
       /* --------------   TIMER A TEST:  CONTINUOUS MODES   ----------------- */
       /* --------------   TIMER A TEST:  CONTINUOUS MODES   ----------------- */
 
 
Line 129... Line 145...
        mov  #0x0090, &TACCTL1  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCTL1  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCR2
        mov  #0x0090, &TACCR2
        mov  #0x0090, &TACCTL2  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCTL2  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0266, &TACTL    ; # Continuous-mode & clk/2, IRQ enabled
        mov  #0x0266, &TACTL    ; # Continuous-mode & clk/2, IRQ enabled
        mov  #0xfff0, &TAR
        mov  #0xfff0, &TAR
        mov  #0x0001, &0x0200
        mov  #0x0001, &DMEM_200
        mov  #0x0080, r14
        mov  #0x0080, r14
        call #WAIT_FUNC
        call #WAIT_FUNC
 
 
                                ; # --------- COMPARATOR 0, 1 and 2 - TEST 2 ----------
                                ; # --------- COMPARATOR 0, 1 and 2 - TEST 2 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
Line 143... Line 159...
        mov  #0x0090, &TACCTL1  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCTL1  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCR2
        mov  #0x0090, &TACCR2
        mov  #0x0090, &TACCTL2  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCTL2  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0266, &TACTL    ; # Continuous-mode & clk/2, IRQ enabled
        mov  #0x0266, &TACTL    ; # Continuous-mode & clk/2, IRQ enabled
        mov  #0xfff0, &TAR
        mov  #0xfff0, &TAR
        mov  #0x0002, &0x0200
        mov  #0x0002, &DMEM_200
        mov  #0x0080, r14
        mov  #0x0080, r14
        call #WAIT_FUNC
        call #WAIT_FUNC
 
 
 
 
        dint
        dint
        mov  #0x0000, &0x0200
        mov  #0x0000, &DMEM_200
        mov  #0x2000, r15
        mov  #0x2000, r15
 
 
 
 
       /* --------------   TIMER A TEST:  UP-DOWN MODE   ----------------- */
       /* --------------   TIMER A TEST:  UP-DOWN MODE   ----------------- */
 
 
Line 169... Line 185...
        mov  #0x0090, &TACCTL0  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCTL0  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0060, &TACCR1
        mov  #0x0060, &TACCR1
        mov  #0x0090, &TACCTL1  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCTL1  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0030, &TACCR2
        mov  #0x0030, &TACCR2
        mov  #0x0090, &TACCTL2  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCTL2  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0001, &0x0200
        mov  #0x0001, &DMEM_200
        mov  #0x0277, &TACTL    ; # Up-down mode & clk/2, IRQ enabled
        mov  #0x0277, &TACTL    ; # Up-down mode & clk/2, IRQ enabled
        mov  #0x00E0, r14
        mov  #0x00E0, r14
        call #WAIT_FUNC
        call #WAIT_FUNC
 
 
        mov  #0x0000, &TACCTL0
        mov  #0x0000, &TACCTL0
Line 187... Line 203...
        mov  #0x0090, &TACCTL0  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCTL0  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0060, &TACCR1
        mov  #0x0060, &TACCR1
        mov  #0x0090, &TACCTL1  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCTL1  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0030, &TACCR2
        mov  #0x0030, &TACCR2
        mov  #0x0090, &TACCTL2  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0090, &TACCTL2  ; # Compare mode, output toggle mode, IRQ enabled
        mov  #0x0002, &0x0200
        mov  #0x0002, &DMEM_200
        mov  #0x0277, &TACTL    ; # Up-down mode & clk/2, IRQ enabled
        mov  #0x0277, &TACTL    ; # Up-down mode & clk/2, IRQ enabled
        mov  #0x00E0, r14
        mov  #0x00E0, r14
        call #WAIT_FUNC
        call #WAIT_FUNC
 
 
 
 
        dint
        dint
        mov  #0x0000, &0x0200
        mov  #0x0000, &DMEM_200
        mov  #0x3000, r15
        mov  #0x3000, r15
 
 
        /* --------------   TIMER A TEST:  CCI INPUT LATCHING (SCCI)  ----------------- */
        /* --------------   TIMER A TEST:  CCI INPUT LATCHING (SCCI)  ----------------- */
 
 
        mov  #0x0200, &TACTL
        mov  #0x0200, &TACTL
Line 213... Line 229...
        mov  #0x3080, &TACCTL0  ; # Compare mode, output toggle mode, select VCC input
        mov  #0x3080, &TACCTL0  ; # Compare mode, output toggle mode, select VCC input
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCTL1  ; # Disabled
        mov  #0x0000, &TACCTL1  ; # Disabled
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCTL2  ; # Disabled
        mov  #0x0000, &TACCTL2  ; # Disabled
        mov  #0x0001, &0x0200
        mov  #0x0001, &DMEM_200
        mov  #0x0254, &TACTL    ; # Up-mode & clk/2
        mov  #0x0254, &TACTL    ; # Up-mode & clk/2
 
 
comp0_check_0:                  ; # Wait until SCCI is set to 1
comp0_check_0:                  ; # Wait until SCCI is set to 1
        mov       r5, &0x0202
        mov       r5, &DMEM_202
        mov &TACCTL0, r5
        mov &TACCTL0, r5
        mov       r5, r4
        mov       r5, r4
        and  #0x0001, r4
        and  #0x0001, r4
        jz  comp0_check_0
        jz  comp0_check_0
        mov &TACCTL0, &0x0204
        mov &TACCTL0, &DMEM_204
 
 
        mov  #0x2080, &TACCTL0  ; # Wait until SCCI is set back to 0
        mov  #0x2080, &TACCTL0  ; # Wait until SCCI is set back to 0
comp0_check_1:
comp0_check_1:
        mov       r5, &0x0206
        mov       r5, &DMEM_206
        mov &TACCTL0, r5
        mov &TACCTL0, r5
        mov       r5, r4
        mov       r5, r4
        and  #0x0001, r4
        and  #0x0001, r4
        jz  comp0_check_1
        jz  comp0_check_1
        mov &TACCTL0, &0x0208
        mov &TACCTL0, &DMEM_208
 
 
 
 
                                ; # --------- UP-MODE - COMPARATOR 1 ----------
                                ; # --------- UP-MODE - COMPARATOR 1 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x0040, &TACCR0
        mov  #0x0040, &TACCR0
        mov  #0x0000, &TACCTL0  ; # Disabled
        mov  #0x0000, &TACCTL0  ; # Disabled
        mov  #0x0020, &TACCR1
        mov  #0x0020, &TACCR1
        mov  #0x3080, &TACCTL1  ; # Compare mode, output toggle mode, select VCC input
        mov  #0x3080, &TACCTL1  ; # Compare mode, output toggle mode, select VCC input
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCR2
        mov  #0x0000, &TACCTL2  ; # Disabled
        mov  #0x0000, &TACCTL2  ; # Disabled
        mov  #0x0002, &0x0200
        mov  #0x0002, &DMEM_200
        mov  #0x0254, &TACTL    ; # Up-mode & clk/2
        mov  #0x0254, &TACTL    ; # Up-mode & clk/2
 
 
comp1_check_0:                  ; # Wait until SCCI is set to 1
comp1_check_0:                  ; # Wait until SCCI is set to 1
        mov       r5, &0x0212
        mov       r5, &DMEM_212
        mov &TACCTL1, r5
        mov &TACCTL1, r5
        mov       r5, r4
        mov       r5, r4
        and  #0x0001, r4
        and  #0x0001, r4
        jz  comp1_check_0
        jz  comp1_check_0
        mov &TACCTL1, &0x0214
        mov &TACCTL1, &DMEM_214
 
 
        mov  #0x2080, &TACCTL1  ; # Wait until SCCI is set back to 0
        mov  #0x2080, &TACCTL1  ; # Wait until SCCI is set back to 0
comp1_check_1:
comp1_check_1:
        mov       r5, &0x0216
        mov       r5, &DMEM_216
        mov &TACCTL1, r5
        mov &TACCTL1, r5
        mov       r5, r4
        mov       r5, r4
        and  #0x0001, r4
        and  #0x0001, r4
        jz  comp1_check_1
        jz  comp1_check_1
        mov &TACCTL1, &0x0218
        mov &TACCTL1, &DMEM_218
 
 
 
 
                                ; # --------- UP-MODE - COMPARATOR 2 ----------
                                ; # --------- UP-MODE - COMPARATOR 2 ----------
        mov  #0x0204, &TACTL
        mov  #0x0204, &TACTL
        mov  #0x0040, &TACCR0
        mov  #0x0040, &TACCR0
        mov  #0x0000, &TACCTL0  ; # Disabled
        mov  #0x0000, &TACCTL0  ; # Disabled
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCR1
        mov  #0x0000, &TACCTL1  ; # Disabled
        mov  #0x0000, &TACCTL1  ; # Disabled
        mov  #0x0020, &TACCR2
        mov  #0x0020, &TACCR2
        mov  #0x3080, &TACCTL2  ; # Compare mode, output toggle mode, select VCC input
        mov  #0x3080, &TACCTL2  ; # Compare mode, output toggle mode, select VCC input
        mov  #0x0003, &0x0200
        mov  #0x0003, &DMEM_200
        mov  #0x0254, &TACTL    ; # Up-mode & clk/2
        mov  #0x0254, &TACTL    ; # Up-mode & clk/2
 
 
comp2_check_0:                  ; # Wait until SCCI is set to 1
comp2_check_0:                  ; # Wait until SCCI is set to 1
        mov       r5, &0x0222
        mov       r5, &DMEM_222
        mov &TACCTL2, r5
        mov &TACCTL2, r5
        mov       r5, r4
        mov       r5, r4
        and  #0x0001, r4
        and  #0x0001, r4
        jz  comp2_check_0
        jz  comp2_check_0
        mov &TACCTL2, &0x0224
        mov &TACCTL2, &DMEM_224
 
 
        mov  #0x2080, &TACCTL2  ; # Wait until SCCI is set back to 0
        mov  #0x2080, &TACCTL2  ; # Wait until SCCI is set back to 0
comp2_check_1:
comp2_check_1:
        mov       r5, &0x0226
        mov       r5, &DMEM_226
        mov &TACCTL2, r5
        mov &TACCTL2, r5
        mov       r5, r4
        mov       r5, r4
        and  #0x0001, r4
        and  #0x0001, r4
        jz  comp2_check_1
        jz  comp2_check_1
        mov &TACCTL2, &0x0228
        mov &TACCTL2, &DMEM_228
 
 
 
 
        dint
        dint
        mov  #0x0000, &0x0200
        mov  #0x0000, &DMEM_200
        mov  #0x4000, r15
        mov  #0x4000, r15
 
 
 
 
        /* ----------------------         END OF TEST        --------------- */
        /* ----------------------         END OF TEST        --------------- */
end_of_test:
end_of_test:
Line 306... Line 322...
 
 
 
 
        /* ----------------------      INTERRUPT ROUTINES    --------------- */
        /* ----------------------      INTERRUPT ROUTINES    --------------- */
 
 
TIMERA_CCR0_VECTOR:
TIMERA_CCR0_VECTOR:
        mov     &TAR, &0x0202
        mov     &TAR, &DMEM_202
        reti
        reti
 
 
 
 
TIMERA_TAIV_VECTOR:
TIMERA_TAIV_VECTOR:
        mov     &TAR, &0x0204
        mov     &TAR, &DMEM_204
        mov    &TAIV, &0x0206
        mov    &TAIV, &DMEM_206
        reti
        reti
 
 
 
 
        /* ----------------------         INTERRUPT VECTORS  --------------- */
        /* ----------------------         INTERRUPT VECTORS  --------------- */
 
 

powered by: WebSVN 2.1.0

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