【VC++开源代码栏目提醒】:以下是网学会员为您推荐的VC++开源代码-TMS320F28x源码解读:2 - 电子电信,希望本篇文章对您学习有所帮助。
2012/5/15 TMS320F28x源码解读:2 2 定时器0 … .索思达SSDDSP.61IC美国站 您好!欢迎来到61IC网!
会员中心
注册新帐号 加入收藏 设为首页 联系站长 . 网站首页 . 新品 . 新闻 .
方案 . 文库 . TI应用 . TI资源 . FPGA应用 . FPGA资源 . 移动技术 . 爱科技 . 厂商 .
代码 . 下载 . 产品 . 商城 . 邮购须知 . TI应用首页 ARM DaVinci integra DSP和ARM C6000多核DSP C6000 C5000 C3000 C2000 MSP430与ZigBee 模拟与电源管理 CCS环境 专家答疑 您现在的位置: 61IC电子在线 TI应用 C2000 28x 定点系列 正文 TMS320F28x源码解读:2.2 定时器0 中断设置 热 ★★★ 【字体:小 大】 TMS320F28x源码解读:2.2 定时器0 中断设置 作者:乱语 文章来源:乱语 点击数:85 更新时间:2011-12-31 2.2 定时器0 中断设置 定时器0 中断设置由以下几个步骤组成。
1)定时器0 中断的基本条件 除了对周期寄存器(PRDH:PRD)及定时器分频器(TPRH:TPR)进行必要的设置之外,使能定时器0 中断有两条必须的指令: CpuTimer0Regs.TCR.bit.TSS 0 //启动定时器 Timer-RegsAddr-TCR.bit.TIE1 //使能定时器中断 如果缺少上面两条指令中的一条,将不会产生中断。
2)确定中断向量的入口地址 主程序通过“DSP281x_PieVect.c”文件中的InitPieVectTable函数,已经为PIE 向量表中的所有中断向量配置了对应向量的 入口地址。
如果针对某一个外设中断专门有一个中断服务程序,则这个中断服务程序的入口地址必须取代前面配置的入口地址,它由下面的指令完成: EALLOW //允许访问受保护的寄存器 PieVectTable.TINT0 cpu_timer0_isr //取cpu_timer0_isr 地址赋值给 //TINT0中断向量 EDIS //禁止访问受保护的寄存器 上面指令中,cpu_timer0_isr函数是针对TINT0 中断向量的一个中断服务程序,cpu_timer0_isr 是该程序的入口地址。
3)使能PIE 级及CPU 级中断向量 这个步骤由下面4 类指令完成: 先找出中断向量在PIE 向量表中所在的组及在这组中所处的优先级。
经查TINT0是第1 组第7 个中断,因此先通过PIE 级指令“PieCtrlRegs.PIEIER1.bit.INTx7 1”,使能PIE 第1 组第7 个TINT0 中断(INTx7 由头文件定义为PIE 中断使能寄存器(PIEIER)的第7 位)。
通过CPU 级的赋值指令“IER M_INT1”,使能第1 组(M_INT1 由头文件定义为0x0001,指向第1 组),即把TINT0 中断汇集到CPU 级的INT1 中断线上。
通过“EINT”指令使能全局中断,实际指令为: PieCtrlRegs.PIEIER1.bit.INTx7 1 //使能PIE 中的TINT0,1 组第7 个中断 IER M_INT1 //使能第1 组中断 EINT //使能INTM 全局中断 这里用了按位或复合运算符“”,其用意是不破坏IER 原有结构。
如果程序仅此一个中断,可以用 “IER 0x0001”指令,否则,会破坏IER 原有结构。
使能PIE 向量表,由下面一条指令完成。
PieCtrlRegs.PIECRTL.bit.ENPIE1 实际上这条指令包含在初始化PIE 向量表InitPieVectTable函数中,主程序对这个函数已经调用。
因此可省略。
4)中断服务程序 中断服务
程序是以关键字interrupt 开头的一个程序。
通常在中断服务程序中有两条必须的指令:一条是中断应答,另一条是将中断标志位清0。
定时器0 中断应答指令为: PieCtrlRegs.PIEACK.allPIEACK_GROUP1 //PIEACK_GROUP10x0001 PIE 应答寄存器PIEACK 是中断从PIE 级进入CPU 级的门禁。
一个中断在进入CPU级之前,其对应的PIEACKx.1必须通过软件清0,打开后续INTx 的PIE 级到CPU 的通道。
而当这 个中断进入CPU 级INTx 中断线时,硬件将PIEACKx.1位置1,关闭后续INTx 的PIE 级到CPU 的通道。
这条指令通过向PIEACK0写1,将PIEACK0位清0,从而打开后续INT1 的 PIE 级到CPU 级的中断。
注意:PIEACKx.1对INTx 中断线(1 x 12)。
源码的中断服务程序中没有将中断标志位清0 的指令。
当程序开始运行并执行到指令“CpuTimer0Regs.TCR.bit.TSS 0”时,定时器中断标志位TIFTCR15即从0 变成1。
这 意味着一旦启动定时器即触发定时器中断之后,即使通过
软件将该位置1,也不能将其清0。
5)中断服务程序及中断初始化函数声明 如果中断服务程序及中断初始化函数放在主函数的下面,则在主函数头部要对中断服务程序及中断初始化函数进行声明: interrupt void cpu_timer0_isr如果中断服务函数放在主函数的上面,则不必进行声明。
欢迎点击进入:TI德州中文网 国内唯一针对TI应用的中文技术网站 文章录入:admin 责任编辑:admin61ic.com/Article/C2000/…/40198.html 1/22012/5/15 TMS320F28x源码解读:2 2 定时器0 … 上一篇文章: TI DSP 位域寄存器文件Bit Field and Register-File Structure结构 下一篇文章: TMS320F28x ConfigCpuTimer函数 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 最新热点 最新推荐 相关文章 图文CCS 4.x随笔 图文TMS320
VC54xx通用FL… DSP中特定程序和特定数据放在… 在CCS4中新建工程的详细步… 图文TMS320LF2407
系统和… DSP-F2812 SCI
通信发送模块中… 组图CCSv5入门教程 – C… 组图烧写TMS320F2812芯片… DSPF2812的看门狗模块 UBOOT 通过 TFTP 下载 uIm… 组图XDS510 DSP系列仿真… TI DSP 280xx ePWM 模块实现… u-boot nand flash read/w… 图文JTAG口与仿真器连接… TMS320F28x ConfigCpuTimer… Ti的DM368系列芯片的所有P… 图文TMS320
VC5410硬件连… TI DSP 位域寄存器文件Bit … 组图BT656/BT601/BT1120… 图文采用ADuC834的口0与… FLASH控制寄存器功能及应用图… 组图基于DSP的异步电机矢… 图文AD73360与TMS320
VC5… Simulink中S-function访问硬… 组图FG676TMS320DM6437… 图文DSP5402和MAX3110硬… 无刷直流电机PWM调制分析(三… 组图达芬奇数字视频软件… 图文主从模式的TLC320AC… 直流无刷电机霍尔值对应三相… 网友评论:(只显示最新10条。
评论内容只代表网友观点,与本站立场无关!) 没有任何评论 设为首页 加入收藏 联系站长 友情链接
版权申明 网站公告 管理登录 站长:61IC 湘ICP备05002478号61ic.com/Article/C2000/…/40198.html 2/2