请教专家F2812定时器编程中的中断问题

请教专家F2812定时器编程中的中断问题,第1张

中断响应过程

a.接受中断请求。顷雹必须由软件中断(从程序代码)或硬件中断(从一个引脚或一个基于

芯片的设备)提出请求去暂停当前主程序的执行。

b.响应中断。必须能够响应中断请求。如果中断是可屏蔽的,则必须满足一定的条件,

按照一定的顺序去执行。而对于非可屏蔽中断和软银乎岁件中断,会立即作出响应。

c.准备执行中断服务程序锋睁并保存寄存器的值。

d.执行中断服务子程序。调用相应得中断服务程序ISR,进入预先规定的向量地址,并

且执行已写好的ISR。

3.中断类别

可屏蔽中断:这些中断可以用软件加以屏蔽或解除屏蔽。

不可屏蔽中断:这些中断不能够被屏蔽,将立即响应该类中断并转入相应的子程序去执

行。所有软件调用的中断都属于该类中断。

4.中断的优先级

如果多个中断被同时激发,将按照他们的中断优先级来提供服务。中断优先级是芯片内部

已定义好的,不可修改。

仅供参考

TMS320F28035例程 例程采用CCS4.4编译,包含各部分功能配棚伏置,为学习TMS320F28035程序编写提供方便。

F2812有3个32位CPU定时器(TIMER0/1/2),其中定时携肆器1和2预留给实时 *** 作系统DSP/BIOS使用,只有定时器0才可以供user使用。

TINIT频率 = 输入时钟频率 /(TDDRH:TDDR+1)(PRDH:PRD+1)

假如CPUTimer0预分频寄存器为0,且SYSCLKOUT为150MHZ,则定辩和轿时器的周期寄存器的值为150 * 中断时间(单位为微秒)。

源程序如下码察竖:

//迟大就是通过这个循环来实现没岁信号的输入

while(1)

{

GpioDataRegs.GPADAT.all=0xAAAA

GpioDataRegs.GPBDAT.all=0xAAAA

GpioDataRegs.GPDDAT.all=0x0022

GpioDataRegs.GPEDAT.all=0x0002

GpioDataRegs.GPFDAT.all=0xAAAA

GpioDataRegs.GPGDAT.all=0x0020

delay_loop()//´ËÐÐÌí¼Ó¶Ïµã

GpioDataRegs.GPADAT.all=0x5555

GpioDataRegs.GPBDAT.all=0x5555

GpioDataRegs.GPDDAT.all=0x0041 // Four I/Os only

GpioDataRegs.GPEDAT.all=0x0005 // ThreeI/Os only

GpioDataRegs.GPFDAT.all=0x5555

GpioDataRegs.GPGDAT.all=0x0010 // Two I/Os only


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12506170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存