OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4023|回复: 0

关于定时器中断生成pwm波的问题

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2021-1-19
在线时间
1 小时
发表于 2021-2-14 11:38:56 | 显示全部楼层 |阅读模式
6金钱
纯新手,最近学到了定时器。
我们可以知道定时器是可以自己生成pwm波的。
定时器中断也可以。
我自己想用stm32的板子做出一个光敏电阻根据外界光的大小改变通过改变占空比来控制led的亮度。
现在的问题是,我的led亮的不连续,而是呈现出闪烁,随着光的增强闪烁频率减小,最暗的时候已经达到了持续亮的效果。
我认为应该是参数的问题,但是弄了好久都没有弄出来,希望论坛各位大佬指教。
附代码:
定时器中断函数部分:
void TIM3_IRQHandler(void)
{
                led0temp =Get_Adc_Average(ADC_Channel_1,10);//光强(adc检测)
        led0temp =led0temp /40;
        if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
                {
                        TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );       
                        com++;
                        if(com==led0temp)
                                LED0 =0;
                        if(com==100)
                        {
                                com=0;
                                LED0 =1;
                        }
                       
                }
}

主函数部分(只留下重点):
u16 adcx;
        float temp;
        delay_init();                     
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        uart_init(115200);                
        LED_Init();                                                         
        Adc_Init();                                 
        OLED_Init();               
        OLED_Clear()          ;//我做的显示功能

TIM3_Int_Init (9,719);//这是我设置的时长


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 10:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表