找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2721|回复: 2
收起左侧

定时器1用做单片机模拟PWM调节 来位好心人给我讲解下这段程序好吗

[复制链接]
ID:197037 发表于 2017-5-25 16:06 | 显示全部楼层 |阅读模式
/*******************定时器1用做单片机模拟PWM调节***********************/
void Timer1() interrupt 3  //调用定时器1
{
        static uchar value_l;
        TH1=0xff;          //定时中断一次
        TL1=0xec;         
        if(pwm==1)
        {
                value_l+=3;
                if(value_l > f_pwm_l)   //高电平
                {
                        value_l=0;
                        pwm=0;         
                }
        }
        else                                
        {
                value_l+=3;
                if(value_l  > 100 - f_pwm_l)  //低电平
                {
                        value_l=0;
                        pwm=1;
                }
    }
}

回复

使用道具 举报

ID:151348 发表于 2017-5-25 16:34 | 显示全部楼层
断章取义没法看
回复

使用道具 举报

ID:205150 发表于 2017-5-26 17:05 | 显示全部楼层
两个 关于value_l 的 if 判断是为了延时。其中 f_pwm_l 其实是占空比,这里它的设定应该是0~100之间的值。比如该值=40,可以理解为每周期百分之40的时间pwm=0,百分之60的时间里pwm=1。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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