打印

通用定时器进不了中断

[复制链接]
401|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dengdc|  楼主 | 2017-11-5 13:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序如下
.include"DSP28_REG.asm"
  .def T1PINT_ISR
  .def T2PINT_ISR
  .def T3PINT_ISR
  .def T4PINT_ISR
        

  .global start
start:
    LC    InitSysCtrl
    DINT      
             AND IER,#0x0000
    AND IFR,#0x0000
    LC    InitPieCtrl
    LC    InitPieVectTable
    LC    Init_eva_timer1   
    LC    Init_eva_timer2
    LC    Init_eva_timer3
    LC    Init_eva_timer4

             MOVL XAR0,#PIEIER2
    OR   *XAR0,#0x0008
    MOVL XAR0,#PIEIER3
    OR   *XAR0,#0x0001
    MOVL XAR0,#PIEIER4
    OR   *XAR0,#0x0008
    MOVL XAR0,#PIEIER5
    OR   *XAR0,#0x0001

    OR  IER,#0x001E
             EINT
    CLRC    DBGM
mainloop:
             NOP
    NOP
    NOP
    NOP
    LB  mainloop

;***************************************
InitSysCtrl:
    EALLOW
   ;????
    MOVL  XAR0,#WDCR
   OR    *XAR0,#0x0068
            MOVL  XAR0,#PLLCR
   MOV   *XAR0,#0x000A
            LC    DELAY_10mS
   MOVL  XAR0,#HISPCP
   MOV   *XAR0,#0x0001
   MOVL  XAR0,#LOSPCP
   MOV   *XAR0,#0x0002
   MOVL  XAR0,#PCLKCR
   OR    *XAR0,#0x0008
   EDIS
   LRET

;*****************************************
InitPieCtrl:
            MOVL XAR0,#PIECTRL
   OR   *XAR0,#0x0000
   MOVL XAR0,#PIEIER1
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIER2
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIER3
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIER4
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIER5
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIER6
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIER7
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIER8
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIER9
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIER10
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIER11
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIER12
   MOV  *XAR0,#0x0000
     MOVL XAR0,#PIEIFR1
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIFR2
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIFR3
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIFR4
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIFR5
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIFR6
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIFR7
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIFR8
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIFR9
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIFR10
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIFR11
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIEIFR12
   MOV  *XAR0,#0x0000
   MOVL XAR0,#PIECTRL
   OR   *XAR0,#0x0001
            MOVL XAR0,#PIEACK
   MOV  *XAR0,#0xFFFF
   LRET
;********************************************
InitPieVectTable:
            NOP
   EALLOW
         NOP
          MOVL XAR0,#T1PINT_ISR
   MOVL XAR1,#0x0D56
   MOVL *XAR1,XAR0
   MOVL XAR0,#T2PINT_ISR
   MOVL XAR1,#0x0D60
   MOVL *XAR1,XAR0
   MOVL XAR0,#T3PINT_ISR
   MOVL XAR1,#0x0D76
   MOVL *XAR1,XAR0
   MOVL XAR0,#T4PINT_ISR
   MOVL XAR1,#0x0D80
   MOVL *XAR1,XAR0
         NOP
   EDIS
   NOP
            LRET
;*****************Timer1/2/3/4初始化****************************
Init_eva_timer1:
       MOVL     XAR0,#GPTCONA
   MOV     *XAR0,#0x0000
            MOVL     XAR0,#T1PR
   MOV     *XAR0,#0x0200
   MOVL     XAR0,#T1CMPR
   MOV     *XAR0,#0x0000
   MOVL     XAR0,#EVAIMRA
   OR       *XAR0,#0x0080
    MOVL     XAR0,#EVAIFRA
   OR       *XAR0,#0x0080
   MOVL      XAR0,#T1CNT
   MOV     *XAR0,#0x0000
   MOVL      XAR0,#T1CON
      MOV      *XAR0,#0x1742
   MOVL     XAR0,#GPTCONA
   OR       *XAR0,#0x0100     
            LRET
Init_eva_timer2:
       MOVL     XAR0,#GPTCONA
   MOV     *XAR0,#0x0000
            MOVL     XAR0,#T2PR
   MOV     *XAR0,#0x0400
   MOVL     XAR0,#T2CMPR
   MOV     *XAR0,#0x0000
   MOVL     XAR0,#EVAIMRB
   OR       *XAR0,#0x0001
    MOVL     XAR0,#EVAIFRB
   OR       *XAR0,#0x0001
   MOVL      XAR0,#T2CNT
   MOV     *XAR0,#0x0000
   MOVL      XAR0,#T2CON
      MOV      *XAR0,#0x1742
   MOVL     XAR0,#GPTCONA
   OR       *XAR0,#0x0400     
            LRET
Init_eva_timer3:
       MOVL     XAR0,#GPTCONB
   MOV     *XAR0,#0x0000
            MOVL     XAR0,#T3PR
   MOV     *XAR0,#0x0800
   MOVL     XAR0,#T3CMPR
   MOV     *XAR0,#0x0000
   MOVL     XAR0,#EVBIMRA
   OR       *XAR0,#0x0080
    MOVL     XAR0,#EVBIFRA
   OR       *XAR0,#0x0080
   MOVL      XAR0,#T3CNT
   MOV     *XAR0,#0x0000
   MOVL      XAR0,#T3CON
      MOV      *XAR0,#0x1742
   MOVL     XAR0,#GPTCONB
   OR       *XAR0,#0x0100     
            LRET
Init_eva_timer4:
       MOVL     XAR0,#GPTCONB
   MOV     *XAR0,#0x0000
            MOVL     XAR0,#T4PR
   MOV     *XAR0,#0x1000
   MOVL     XAR0,#T4CMPR
   MOV     *XAR0,#0x0000
   MOVL     XAR0,#EVBIMRB
   OR       *XAR0,#0x0001
    MOVL     XAR0,#EVBIFRB
   OR       *XAR0,#0x0001
   MOVL      XAR0,#T4CNT
   MOV     *XAR0,#0x0000
   MOVL      XAR0,#T4CON
      MOV      *XAR0,#0x1742
   MOVL     XAR0,#GPTCONB
   OR       *XAR0,#0x0400     
            LRET
;***********************************************************
DELAY_10mS: NOP
   MOV  AR0,#60000   ;10ms/7.41ns=1499250=60000*22
$0:   RPT     #17     ;1
||  NOP       ;1*3
   BANZ $0,AR0--   ;4
   NOP
   LRET
;************************************************************
T1PINT_ISR:            
            MOVL     XAR0,#EVAIMRA
            OR       *XAR0,#0x0080  
            MOVL     XAR0,#EVAIFRA
   OR      *XAR0,#0x0080
            MOVL     XAR0,#PIEACK
            OR       *XAR0,#0x0002      
            IRET
T2PINT_ISR:
    MOVL     XAR0,#EVAIMRB
    OR       *XAR0,#0x0001
    MOVL     XAR0,#EVAIFRB
    OR       *XAR0,#0x0001   
   MOVL     XAR0,#PIEACK
            OR       *XAR0,#0x0004
            IRET
T3PINT_ISR:
   MOVL     XAR0,#EVBIFRA
   OR      *XAR0,#0x0080
            MOVL     XAR0,#PIEACK
            OR       *XAR0,#0x0008
            IRET
T4PINT_ISR:
   MOVL     XAR0,#EVBIFRB
    OR       *XAR0,#0x0001   
   MOVL     XAR0,#PIEACK
            OR       *XAR0,#0x0010
            IRET


          .end

相关帖子

沙发
yszong| | 2017-11-5 13:12 | 只看该作者

这程序真不短。。。

使用特权

评论回复
板凳
spark周| | 2017-11-5 13:15 | 只看该作者
不是不短   主要是汇编

使用特权

评论回复
地板
liliang9554| | 2017-11-5 13:17 | 只看该作者
汇编真心不懂,不过建议看下不可屏蔽中断开了没?

使用特权

评论回复
5
dengdc|  楼主 | 2017-11-5 13:19 | 只看该作者
其实还是不大明白,我再琢磨琢磨吧,多谢了哈,结贴了先

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

892

主题

13885

帖子

7

粉丝