DSP28x定时器中断设置步骤.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DSP28x定时器中断设置步骤

DSP28X cpu定时器设置步骤确定中断向量的入口地址:EALLOW;PieVectTable.TINT0=cpu_timer0_isr;PieVectTable.TINT1=cpu_timer1_isr;PieVectTable.TINT2=cpu_timer2_isr;EDIS;其中,cpu_timer0_isr函数是针对TINT0中断向量的一个中断服务函数,cpu_timer0_isr()是该函数的入口地址。2.使能PIE级及CPU级中断向量:这个步骤由下面4类指令完成:先找出TINT0中断向量在PIE级向量表中所在组,及在这组中所处的优先级。例如差的TINT0向量位于PIE向量表中第一组的第7个中断。则指令语句为:PieCtrlRegs.PIEIER1.bit.INTx7=1;//使能PIE中的TINT0,第一组第7个中断通过CPU级的赋值指令使能第一组INT1。IER|=M_INT1;//使能CPU级INT1中断,CPU—Timer0链接到INT1中断上。通过以下指令EINT;//使能全局中断INTMERTM;//使能全局实时中断DBGM使能PIE向量表,由下面一条指令完成:PieCtrlRegs.PIECRTL.bit.ENPIE=1;中断服务函数中必须包含的指令:PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;//PIEACK_GROUP1=0x0001准备做好后,便开始设置中断请求周期直接调用CPU定时器配置函数ConfigCpuTimer(struct CPUTIMER_VARS*Timer,floatFreq,floa Period)CinfigCpuTimer(CpuTimer0,10,100);//中断请求周期为16.67us启动定时器中断CpuTimer0Regs.TCR.all=0x4000;CpuTimer0Regs.TCR.bit.TSS = 0;在终端服务函数中写所需指令要求:Interrupt void cpu_timer0_isr(void){……PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;}实用例程:以1秒的中断周期,将GPIO0口进行点位翻转,即产生频率为1HZ的方波。# includeDSP2802x_Device.h# includeDSP2802x_GlobalPrototypes.hinterrupt void cpu_timer0_isr(void);voidgpio_setup(void);int main(void){InitSysCtrl();DINT;IER=0X0000;IFR=0X0000;InitPieCtrl();InitPieVectTable();gpio_setup();//**********************************************************************InitCpuTimers();MemCopy(RamfuncsLoadStart, RamfuncsLoadEnd, RamfuncsRunStart);InitFlash();EALLOW;PieVectTable.TINT0=cpu_timer0_isr;EDIS;PieCtrlRegs.PIEIER1.bit.INTx7=1;IER|=M_INT1;EINT;ERTM;PieCtrlRegs.PIECTRL.bit.ENPIE = 1;ConfigCpuTimer(CpuTimer0,60,1000000);CpuTimer0Regs.TCR.all=0x4000;CpuTimer0Regs.TCR.bit.TSS = 0;//**********************************************************************GpioDataRegs.GPASET.bit.GPIO0=1;GpioDataRegs.GPASET.bit.GPIO1=1;GpioDataRegs.GPASET.bit.GPIO2=1;GpioDataRegs.GPASET.bit.GPIO3=1;while(1){;}}interrupt void cpu_timer0_isr(void){CpuTimer0.InterruptCount++;GpioDataRegs.GPATOGGLE.bit.GPIO0=1;GpioDataRegs.GPATOGGLE.bit.GPIO1=1;GpioDataRegs.GPATOGGLE.bit.GPIO2=1;GpioDataRegs.GPATOGGLE.bit.GPIO3=1;PieCtrlRegs.PIEACK.all

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档