第3章 流水灯定时及外部中断控制.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 流水灯定时及外部中断控制.ppt

主要内容 学习存储空间及外部扩展接口XINTF 流水灯控制系统电路 系统要求 每隔1秒钟,LED状态发生一次变化; 按下外部中断按钮,LED状态保持不变。 系统的工作过程 74HC373介绍 Zone2和Zone6 Zone7 XINTF接口的应用 LED显示器的接口扩展 CPU定时器 CPU定时器的工作原理 TIMER0TIM计数寄存器 TIMER0PRD(周期寄存器) TIMER0TCR(控制寄存器) TIMER0TPR(预定标寄存器) CPU定时器的编程 有源晶振为30MHz,Sysclkout=150MHz,设置CPUTIMER0定时器每1秒产生1次中断。 中断系统 CPU定时器TIMER0的周期中断 (1)外设级 在本项目中,要求当CPU定时器0的计数寄存器(TIMH:TIM)减到0时,定时器TIMER0的控制寄存器TCR的第15位TIF标志位被置为1,产生了定时中断事件,这时候如果TIMER0的TCR的第14位TIE使能位是1,则就会向PIE发出中断请求。需要注意的是,不管在什么情况下,中断标志位都必须手工清除。 LED灯定时闪烁控制系统软件 #include DSP281x_Device.h // 引用头文件 #include DSP281x_Examples.h // //功能服务函数的声明 interrupt void cpu_timer0_isr(void); 声明CPU定时器0的中断服务程序 //以下为主程序 void main(void) { //初始化系统控制寄存器、PLL、看门狗和时钟 InitSysCtrl(); //禁止和清除所有CPU中断向量 DINT; //初始化PIE控制寄存器 InitPieCtrl(); //PIE的中断都禁用,PIE中断标志位清0 // CPU的中断都禁用,CPU的中断标志位清0 IER = 0x0000; IFR = 0x0000; else if(CpuTimer0.InterruptCount3) { asm( nop ); *(int *)0x88001=0x0024; } else if(CpuTimer0.InterruptCount4) { asm( nop ); *(int *)0x88001=0x0018; } else if(CpuTimer0.InterruptCount5) { asm( nop ); *(int *)0x88001=0x0024; } 下面是CPU定时器0的中断服务子程序。 interrupt void cpu_timer0_isr(void) { CpuTimer0.InterruptCount++; // 使INT1中断组继续接收中断 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; } 外部中断 TMS320F2812支持三个外部中断,分别是INT1、INT2和INT13。其中INT13与不可屏蔽中断XNNI共用一个脚。中断方式设定为上升沿或下降沿触发,也可以使能或禁止。 外部中断1控制寄存器XINT1CR 外部中断2控制寄存器XINT2CR 外部中断控制LED灯的工作过程 八位LED灯的LED灯的存储器映射地址为0x08 8001。在外部中断服务程序中对0x08 8001单元改写数据就可以改变8个LED的亮与灭。 在F2812的XINT2引脚,连接了单次脉冲信号。当外部按下中断按钮,就可以产生低电平脉冲,从而产生外部中断。 在本项目中,使用了XINT2。 外部中断控制LED灯的程序 #include DSP281x_Device.h // 引用头文件 #include DSP281x_Examples.h Uint16 show=0x00aa; //定义欲显示值 Uint32 Xint2InterruptCount; //声明外部中断2中断次数计数器 //功能子程序的声明 void init_xint2(void); //初始化外部中断2子程序声明 interrupt void xint2_isr(); //外部中断2服务子程序声明 LED灯定时闪烁、外部中断控制系统软件 #include DSP281x_Device.h // 引用头文件 #incl

文档评论(0)

cnsg + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档