标题: 51单片机产生脉宽用定时器怎么实现? [打印本页]

作者: 864800116    时间: 2023-2-15 16:54
标题: 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, 下载次数: 74)

1676450972050.png

作者: Hephaestus    时间: 2023-2-15 22:14
        if(btSwitch1 == 1)     
        {
                btTimer3Count400us++;
                if(btTimer3Count400us>= 2)

你就没觉得这三句话逻辑上有问题吗?
作者: lkc8210    时间: 2023-2-16 18:03
本帖最后由 lkc8210 于 2023-2-17 08:53 编辑

数学问题






作者: ankangyu    时间: 2023-2-17 13:30
初始值的问题,可以使用小工具计算初始值,最好是1ms,进入定时器中断一次。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1