找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1570|回复: 4
收起左侧

两块单片机小程序结合的问题

[复制链接]
ID:880867 发表于 2021-3-6 10:57 | 显示全部楼层 |阅读模式
5黑币
比如 pwm多级调光程序要用到T0定时器,
  1. TH0 = (65536-100)/256;
复制代码

超声测距程序也要用到T0定时器,
  1. TH0=0;
复制代码
请问我应该怎么将这定时器进行处理,希望解答


回复

使用道具 举报

ID:871393 发表于 2021-3-6 16:54 | 显示全部楼层
两块各用各的  毫无影响
回复

使用道具 举报

ID:112099 发表于 2021-3-6 17:16 | 显示全部楼层
再用个定时器T1
回复

使用道具 举报

ID:390416 发表于 2021-3-6 21:31 | 显示全部楼层
简单 框架式编程方式,在定时器中断里面搞一个变量自动增加 作为PWM的时间基础 #include "all.h"
u16 xdata Timer1_Plus;
u16 xdata Acoustic_Distance=0;
void Timer1_INT1_Init()
{
        AUXR|=0x40;
        TMOD&=0X0F;
        TMOD|=0XA0;
        TR1=0;
        TH1=0X53;
        TL1=0X53;
        ET1=1;
}

void Acoustic_Init()
{
        Timer1_INT1_Init();
        Pulse=0;
}

void Timer1_Routine() interrupt 3
{
        Timer1_Plus++;
        if(Timer1_Plus>500)
        {
                TR1=0;
        }
}

void Acoustic_Amount_Ser()
{
        static xdata u16 count=0;
        count++;
        switch(count)
        {
                case 1:Pulse=1;TR1=1;Timer1_Plus=0;break;
                case 3:Pulse=0;break;
                case 1000:Acoustic_Distance=Timer1_Plus;count=0;break;
        }
}
回复

使用道具 举报

ID:367369 发表于 2021-3-9 10:36 | 显示全部楼层
在定时器中断中添加计次变量count;
例如:1ms触发一次中断,count每次加1;
需要10ms的中断时间就判断count%10==0
需要3ms的中断时间就判断count%3==0
然后让count在几种时间的公倍数时清零;上面这两个时间数值就可以让count==30 时count = 0;
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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