完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我用定时器作为红外发码脉宽控制用,STM8S207定时器分频后定时不准,定时器1或2都不行。下面是我的红外发码程序;搞了好久了都不行。
tiM2- gt;SR1 amp;=0xF8; TIM2- gt;IER=0X01; TIM2- gt;CCER1=0x00; TIM2- gt;CCER2=0x00; TIM2- gt;CCMR2=0x00; //TIM2- gt SCR = 0X00;//TIM2- gt;EGR=0x01; sentf=1; for(i=0;i gt;8); TEMPL=(unsigned char)(dumm[i] amp;0x00ff); TIM2- gt;CNTRH=TEMPH; TIM2- gt;CNTRL=TEMPL; if(ir_sentf) { ////TIM3- gt;EGR=0x01; //TIM3- gt;CCER1=0x00; IR_OUT=1; ir_sentf=0; } else { //TIM3- gt;EGR=0x01; //TIM3- gt;CCER1=0x30; IR_OUT=0; ir_sentf=1; } TIM2- gt;SR1=0; enableInterrupts(); TIM2- gt;CR1=0X09; IWDG- gt;KR = 0xAA; nop(); sentf1=0; while(!sentf1) { nop(); } TIM2- gt;SR1 amp;=0xFE; disableInterrupts(); //TIM2- gt;CR1=0x08; } 下面这个是定时器2的更新中断处理 @near @interrupt void TIM2_UPD_OVF_BRK_IRQHandler (void) { /* In order to detect unexpected events during development, it is recommended to set a breakpoint on the following instruction. */ if(TIM2- gt;SR1 amp;0x01) { TIM2- gt;SR1 amp;=0xfe; if(sentf) { sentf1=1; } } //enableInterrupts(); return; } |
|
相关推荐
1个回答
|
|
|
STM8S207定时器分频后定时不准的原因可能有以下几点:
1. 定时器配置问题:请确保您正确配置了定时器的时钟源、预分频器和自动重载寄存器。这些参数将直接影响定时器的计数频率和定时精度。 2. 中断优先级设置:您提到了TIM2->SR1 &= 0xF8,这可能是在清除中断标志。请确保您正确设置了中断优先级,以便在定时器溢出时能够及时响应中断。 3. 中断使能:您设置了TIM2->IER = 0x01,这将使能定时器溢出中断。请确保在定时器配置完成后,使能了定时器的全局中断和定时器中断。 4. 定时器模式:请检查您是否使用了正确的定时器模式,例如向上计数、向下计数或中心对齐模式。不同的模式可能会影响到定时精度。 5. 软件延时:在红外发码程序中,您可能使用了软件延时来控制脉宽。软件延时的精度受到CPU时钟频率和编译器优化的影响,可能导致定时不准确。您可以尝试使用定时器硬件延时来提高精度。 6. 红外发射模块特性:请确保您的红外发射模块能够正确响应定时器产生的脉宽信号。某些红外模块可能对脉宽精度有较高的要求。 7. 外部干扰:电磁干扰、电源波动等因素可能影响到定时器的计数精度。请检查您的电路设计,确保有足够的去耦电容和屏蔽措施。 针对您的红外发码程序,我建议您: 1. 检查定时器配置,确保时钟源、预分频器和自动重载寄存器设置正确。 2. 使能定时器全局中断和定时器中断。 3. 在定时器溢出中断服务程序中,添加对定时器溢出标志的清除操作。 4. 考虑使用定时器硬件延时替代软件延时,以提高脉宽控制精度。 5. 检查红外发射模块的特性,确保其能够正确响应定时器产生的脉宽信号。 6. 检查电路设计,确保有足够的去耦电容和屏蔽措施,以减少外部干扰。 希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更详细的代码和硬件设计信息,以便进一步分析。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4130 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3221 浏览 1 评论
2747 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2175 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
14939 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3084浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1892浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2064浏览 3评论
1976浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2165浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 19:27 , Processed in 0.801159 second(s), Total 74, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2498