完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我从PIC32计时器参考手册中使用下面的代码来启动带有中断的计时器。我已经检查过,在操作期间,IFS0bit.T2IF是每个定时器周期设置的(我在主循环中用if语句检查过),但是CPU没有输入我定义的ISR函数。下面是我的代码:void_ISR(_tiMER_2_VECTOR,ipl3)Timer2Handler(void);int main(void){TRISB=0x00C0;AD1PCFG=0xFF3F;TRISF=0x00000000;PORTF=0xFFFFFFFFFFFFFFFFFF;//初始化Timer 2模块T2CON=0x0;//停止计时器并清除控制寄存器,内部时钟源TMR2=0x0//清除定时器registerPR2=0xFFFF;//加载时段registerIPC2SET=0x0000000C;//设置优先级级别=3IPC2SET=0x0000000D;//设置次优先级级别=1//可以通过分配PC2SET=0x0000000DIFS0CLR=0x00000100在单个操作中完成;//清除定时器中断状态标志I(1){如果(IFS0bits.T2IFIFIFIFIF==1){如果(IFS0bits.T2IF==1){IFS0bits.T2IFIF==1){LATFbits.LATF5.LATFF5=1;//切换LED这显示计时器正在运行,中断标志被提高,如果S0CLR=0x000000000;}LATF比特.LATF5=0;}LATFFFF5=0}void_u ISR(_TIMER_2_VECTOR_2_VECTOR_2_VECTOR_2_VECTOR_2_VECTR_2_2_VECTR_2_VECTR_2_2_2_(ipl3)Timer2HaNdle(空){int I;//…执行响应中断的应用程序特定操作。LATB14=0;/ /切换LED。这个LED从不闪烁.for(i=0;i<400;i++);LATBbits.LATB14=1;for(i=0;i<400;i+++);IFS0CLR=0x00000100;//确保清除Timer1中断状态}我没有得到任何编译器错误,ISR和定时器初始化,直接从Timer参考手册中获取。我的编译器是XC32编译器,我很欣赏我的问题的任何线索或帮助。提前感谢。
|
|
相关推荐
2个回答
|
|
您可能需要启用全局和多向量中断来触发CPU的任何中断。上面已经有一些论坛帖子,您也可以检查中断FRM。
|
|
|
|
谢谢你的答复,我在我的主函数(初始化部分)中添加了以下两行代码,CPU现在进入我的ISR._CP0_SET_STATUS(0x00000001);//enable全局中断(协处理器0状态寄存器)INTCONbits.MVEC=1;//enable多向量modeards,MN
|
|
|
|
只有小组成员才能发言,加入小组>>
5257 浏览 9 评论
2038 浏览 8 评论
1958 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3219 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2269 浏览 5 评论
796浏览 1评论
689浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
620浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
687浏览 0评论
587浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 07:12 , Processed in 1.445484 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号