完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
老师您好!初学,不知道什么时候进入中断,为了能说明白问题,下面的例程在开发板上已经测试了,正常,是PWM控制两个LED闪烁,我只是想知道,进入中断的条件,在哪条语句中能看到满足某个条件就进入了中断啊?感谢了
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File #include "DSP2833x_Examples.h" // DSP2833x Examples Include File #define PWM1_INT_ENABLE 1 #define PWM2_INT_ENABLE 1 #define PWM3_INT_ENABLE 1 #define PWM1_tiMER_TBPRD 0x1FFF #define PWM2_TIMER_TBPRD 0x1FFF #define PWM3_TIMER_TBPRD 0x1FFF #define DELAY 1000000L interrupt void epwm1_timer_isr(void); interrupt void epwm2_timer_isr(void); interrupt void epwm3_timer_isr(void); void InitEPwmTimer(void); Uint32 EPwm1TimerIntCount; Uint32 EPwm2TimerIntCount; Uint32 EPwm3TimerIntCount; Uint32 LoopCount; void main(void) [ InitSysCtrl(); DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); EALLOW; PieVectTable.EPWM1_INT = &epwm1_timer_isr; PieVectTable.EPWM2_INT = &epwm2_timer_isr; PieVectTable.EPWM3_INT = &epwm3_timer_isr; EDIS; InitEPwmTimer(); InitFlash(); EPwm1TimerIntCount = 0; EPwm2TimerIntCount = 0; EPwm3TimerIntCount = 0; LoopCount = 0; EINT; ERTM; InitXintf(); for(;;) [] ] void InitEPwmTimer() [ EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; EDIS; // Setup Sync EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; EPwm3Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; // Allow each timer to be sync'ed EPwm1Regs.TBCTL.bit.PHSEN = TB_ENABLE; EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; EPwm3Regs.TBCTL.bit.PHSEN = TB_ENABLE; EPwm1Regs.TBPHS.half.TBPHS = 100; EPwm2Regs.TBPHS.half.TBPHS = 200; EPwm3Regs.TBPHS.half.TBPHS = 300; EPwm1Regs.TBPRD = PWM1_TIMER_TBPRD; EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO; EPwm1Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE; EPwm1Regs.ETPS.bit.INTPRD = ET_1ST; EPwm2Regs.TBPRD = PWM2_TIMER_TBPRD; EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; EPwm2Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO; EPwm2Regs.ETSEL.bit.INTEN = PWM2_INT_ENABLE; EPwm2Regs.ETPS.bit.INTPRD = ET_2ND; EPwm3Regs.TBPRD = PWM3_TIMER_TBPRD; EPwm3Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; EPwm3Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO; EPwm3Regs.ETSEL.bit.INTEN = PWM3_INT_ENABLE; EPwm3Regs.ETPS.bit.INTPRD = ET_3RD; EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; EDIS; ] interrupt void epwm1_timer_isr(void) [ // Put the Flash to sleep FlashRegs.FPWR.bit.PWR = FLASH_SLEEP; EPwm1TimerIntCount++; if ((EPwm1TimerIntCount%2000)==0) GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1; EPwm1Regs.ETCLR.bit.INT = 1; PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; ] interrupt void epwm2_timer_isr(void) [ EPwm2TimerIntCount++; if ((EPwm2TimerIntCount%2000)==0) GpioDataRegs.GPATOGGLE.bit.GPIO1 = 1; FlashRegs.FPWR.bit.PWR = FLASH_STANDBY; EPwm2Regs.ETCLR.bit.INT = 1; PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; ] interrupt void epwm3_timer_isr(void) [ Uint16 i; EPwm3TimerIntCount++; for(i = 1; i < 0x01FF; i++) [] EPwm3Regs.ETCLR.bit.INT = 1; PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; ] |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1756浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1723浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 00:16 , Processed in 0.791276 second(s), Total 67, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3273