找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2213|回复: 3
收起左侧

51单片机产生脉宽用定时器怎么实现?

[复制链接]
ID:419045 发表于 2023-2-15 16:54 | 显示全部楼层 |阅读模式
请教下 如图所示 第一个脉宽400us 其余的是200us  运行时间6ms  间隔时间15ms循环用定时器怎么实现
{  
       TL1 = 0x5C;                //设置定时初始值
        TH1 = 0xF7;                //设置定时初始值     200us
        
        if(btSwitch1 == 1)     
        {
               
                DCJ = 0;
                btTimer3Count400us++;
                if(btTimer3Count400us>= 2)
                {
                        btTimer3Count400us = 0;
                                DCJ = 1;               
}
}
为什么出来的第一个脉宽是200us呢         

1676450972050.png
回复

使用道具 举报

ID:883242 发表于 2023-2-15 22:14 | 显示全部楼层
        if(btSwitch1 == 1)     
        {
                btTimer3Count400us++;
                if(btTimer3Count400us>= 2)

你就没觉得这三句话逻辑上有问题吗?
回复

使用道具 举报

ID:161164 发表于 2023-2-16 18:03 | 显示全部楼层
本帖最后由 lkc8210 于 2023-2-17 08:53 编辑

数学问题
IMG_20230216_175934.jpg
2023-02-17_085226.png



回复

使用道具 举报

ID:587810 发表于 2023-2-17 13:30 | 显示全部楼层
初始值的问题,可以使用小工具计算初始值,最好是1ms,进入定时器中断一次。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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