硬件接口(三) 定时器中断

定时器中断

利用定时器中断制作方波发生器,通过XF引脚控制LED发光来检测方波的周期


 

编写中断向量表文件 vectors.asm

                      表1  TMS320V5410的中断向量表和硬件中断优先权

 

        .sect ".vectors"

.global _c_int00 ; C entry point

.align 0x80 ; must be aligned on page boundary

.global TINT0_ISR
RESET: ; reset vector
BD _c_int00 ; branch to C entry point
STM #200,SP ; stack size of 200
nmi: RETE ; enable interrupts and return from one
NOP
NOP
NOP ;NMI~

; software interrupts
sint17 .space 4*16
sint18 .space 4*16
sint19 .space 4*16
sint20 .space 4*16
sint21 .space 4*16
sint22 .space 4*16
sint23 .space 4*16
sint24 .space 4*16
sint25 .space 4*16
sint26 .space 4*16
sint27 .space 4*16
sint28 .space 4*16
sint29 .space 4*16
sint30 .space 4*16

int0: RETE ;External user interrupt #0
NOP
NOP
NOP
int1: RETE ;External user interrupt #1
NOP
NOP
NOP
int2: RETE ;External user interrupt #2
NOP
NOP
NOP
tint: BD TINT0_ISR ;Timer interrupt
NOP
NOP ;B 指令占两个字,所以要填两个NOP
rint0: RETE ;McBSP #0 receive interrupt (default)
NOP
NOP
NOP
xint0: RETE ;McBSP #0 transmit interrupt (default)
NOP
NOP
NOP
rint2: RETE ;McBSP #2 receive interrupt (default)
NOP
NOP
NOP
xint2: RETE ;McBSP #2 transmit interrupt (default)
NOP
NOP
NOP
int3: RETE ;External user interrupt #3
NOP
NOP
NOP
hint: RETE ;HPI interrupt
NOP
NOP
NOP
rint1: RETE ;McBSP #1 receive interrupt (default)
NOP
NOP
NOP
xint1: RETE ;McBSP #1 transmit interrupt (default)
NOP
NOP
NOP
.space 16*16
.end

技巧提示:(1)第一个中断(Reset 中断)是每个程序都应该有的,在不需要其它中断的情况下,可以只用这一部分,后面全部省掉。

              (2)使用的向量一般加一条跳转指令转到相应中断服务子程序,其余空位用NOP 填充;未使用的向量直接用RETE 返回,是为了防止意外进入未用中断。

          (3)另外一个重要问题是中断向量表的位置,上电时默认是在FF80H 处,但实际上很多情况下无法把中断向量表加载到FF80 处,一般重定向到0080H,并在程序开头重新设置一下IPTR的值。

K_IPTR .set 0080h ;指向0080H,默认是FF80

LDM PMST,A

AND #7FH,A ;保留低7位,清掉高位

OR #K_IPTR,A ;

STLM A,PMST

要注意的是这段代码要用到累加器A,所以嵌入这段代码的地方必须在用到累加器A 之前。


 

posted on 2012-02-20 14:53 湖师大 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/ziyixuanyu/archive/2012/02/20/2359482.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值