完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
本人在初学DSP,在学习周期中断的时候,发现在仿真模式下程序一直不能进入周期中断,找了很久都找不到原因,请各位大侠帮帮忙
#include "DSP2803x_Device.h" #include "DSP2803x_Examples.h" unsigned int num=0; interrupt void Count (void) { num++; EPwm1Regs.ETCLR.bit.INT = 1; //中断向量清零处理 PieCtrlRegs.PIEACK.all = 0x0004; EINT; //使能全局中断INTM } void main(void) { int i,j; InitSysCtrl(); DINT; IER=0x0000; IFR=0x0000; InitPieVectTable(); InitPieCtrl(); PieCtrlRegs.PIECTRL.bit.ENPIE=1; PieCtrlRegs.PIEIER3.bit.INTx1=1; //EPWM1_INT 中断允许pie级 PieCtrlRegs.PIEACK.all=0xFFFF; EPwm1Regs.ETSEL.bit.INTEN=1; // Enable EPWMx_INT generation EPwm1Regs.ETSEL.bit.INTSEL=2; // cnt = 2 int(设置中断方式为周期中断) EPwm1Regs.ETPS.bit.INTPRD=1; // int at every cnt =1event每次(周期中断)匹配产生中断(每隔一次/每隔两次) EPwm1Regs.ETCLR.bit.INT=1; // ePWM Interrupt (EPWMx_INT) Flag Clear Bit EALLOW; EPwm1Regs.TBPRD=0x05DC; // Set period for ePWM1,1500=5DC EPwm1Regs.TBCTL.all=0x8000+0x0008+0x0002+0x0000+0x0000+0x0000+0x0000; // count up and down ,start EPwm1Regs.TBPHS.half.TBPHS=0; EPwm1Regs.CMPCTL.all=0x0000; EPwm1Regs.AQCTLA.all=0x0090; //EPWM1A=0 when CTR=cmpa and counter increase //EPWM1A=1 when CTR=cmpa and counter decrease EPwm1Regs.CMPA.half.CMPA=0x02EE; // Set compare A value初始值设置750 EDIS; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1; EALLOW; PieVectTable.EPWM1_INT=&Count; EDIS; PieCtrlRegs.PIEIER3.bit.INTx1 = 1; //EPWM1_INT 中断允许 IER|=M_INT3; EINT; ERTM; while(1) { } } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
TMS320C6748 板卡设计中是否一定需要有SDRAM或者DDR
1958 浏览 0 评论
988 浏览 0 评论
3654 浏览 1 评论
【六岳微LY-F335开发板试用体验】epwm启动ADC并在OLED上显示结果
4493 浏览 0 评论
【六岳微LY-F335开发板试用体验】软件开发环境及调试下载
4541 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 08:18 , Processed in 0.388576 second(s), Total 40, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
14154