完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
外部中断用来脉冲计数。不计数时,定时器正常,每秒翻转一次LED灯。外部中断开始计数,LED灯就不正常了,有时两三秒,有时五六秒才翻转。一开始以为是优先级,可是配置软件优先级后还是一样啊。。。大神们指点一下
|
|
相关推荐
2个回答
|
|
应该是外部中断将定时器的CNT寄存器的值破坏了。
|
|
|
|
在STM8微控制器中,外部中断用于脉冲计数可能会导致LED灯不正常工作的原因可能有以下几点:
1. 中断优先级:虽然您已经尝试调整了优先级,但仍然需要确保外部中断的优先级低于定时器中断的优先级。这样,当定时器中断发生时,它不会被外部中断抢占。 2. 中断服务例程(ISR)执行时间过长:如果外部中断的ISR执行时间过长,它可能会影响定时器中断的响应时间。请检查您的代码,确保ISR尽可能简洁,以减少执行时间。 3. 中断触发条件:请检查外部中断的触发条件是否正确设置。例如,确保它是在脉冲的上升沿或下降沿触发,而不是在两个边沿都触发。 4. 中断标志位:在ISR中,确保清除相应的中断标志位,以避免重复触发中断。 5. 定时器配置:请检查定时器的配置,确保它在外部中断计数时仍然正常工作。这可能包括定时器的预分频器、自动重载寄存器等设置。 6. CPU负载:如果系统中有其他任务或中断服务例程,它们可能会影响CPU的负载,从而影响定时器中断和外部中断的响应时间。请检查系统中的其他任务,确保它们不会影响LED灯的正常工作。 7. 硬件问题:虽然不太可能,但硬件问题(如电源波动、电磁干扰等)也可能导致LED灯不正常工作。请检查硬件连接,确保一切正常。 为了解决这个问题,您可以尝试以下步骤: 1. 确保外部中断的优先级低于定时器中断的优先级。 2. 优化ISR,使其尽可能简洁。 3. 检查外部中断的触发条件和配置。 4. 在ISR中清除相应的中断标志位。 5. 检查定时器的配置,确保它在外部中断计数时仍然正常工作。 6. 检查系统中的其他任务,确保它们不会影响LED灯的正常工作。 7. 检查硬件连接,确保一切正常。 希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便进一步分析。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1935浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
728浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
568浏览 3评论
593浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
551浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 15:26 , Processed in 0.969430 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号