[国产单片机] 输出PWM信号问题求助

[复制链接]
978|2
 楼主| abchhcba2012 发表于 2017-11-10 11:25 | 显示全部楼层 |阅读模式
本帖最后由 abchhcba2012 于 2017-11-10 11:29 编辑

手边单片机只有一个向上计数的8位重装定时器,工作频率8MHz,我想输出一个40Khz的占空比可调的PWM信号,占空比可以从1-100%连续可调,调节步长1%。请大家指点一下如何编写,下面是我的定时器中断程序,Phase_data是控制占空比的变量,如果要想做到40K,则PWM周期要25us,做到100阶调整则定时器要0.25us中断一次了,中断程序无法实现,所以咨询一下要如何更改
void     ISR_PWM(void)                 //  定时器中断程序
{
                           
            if(Switch_Flag==1)
            {
         
                    
                    if (Phase_Counter<=Phase_data)
                    {
                             LED=1 ;
                    }
                    else
                    {
                             LED=0;        
                    }
                   if (Phase_Counter>=100)
                    {
                       Phase_Counter=0;
                    }         
                       Phase_Counter++;                 
                    
            }
         
}

coody 发表于 2017-11-10 16:27 | 显示全部楼层
最好使用带硬件PWM的单片机。

使用软件来做也可以,但最小占空比和最大占空比有限制(因为重装需要时间),一个PWM周期重装2次即可。
 楼主| abchhcba2012 发表于 2017-11-11 15:19 | 显示全部楼层
coody 发表于 2017-11-10 16:27
最好使用带硬件PWM的单片机。

使用软件来做也可以,但最小占空比和最大占空比有限制(因为重装需要时间) ...

手边只有这个,方法明白了,我先试试,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

68

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部