完善资料让更多小伙伴认识你,还能领取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) { } } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于 DSP5509 进行数字图像处理中 Sobel 算子边缘检测的硬件连接电路图
3296 浏览 0 评论
801 浏览 0 评论
普中科技F28335开发板中,如何使用aic23播放由代码生成的正弦波
3730 浏览 0 评论
4484 浏览 1 评论
1396 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 11:06 , Processed in 0.658044 second(s), Total 72, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号