找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1043|回复: 3
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
请教下 如图所示 第一个脉宽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 (681.35 KB, 下载次数: 53)

1676450972050.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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 编辑

数学问题





回复

使用道具 举报

地板
ID:587810 发表于 2023-2-17 13:30 | 只看该作者
初始值的问题,可以使用小工具计算初始值,最好是1ms,进入定时器中断一次。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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