定时器0和1会不会冲突了,定时器1的时间变得很快

2019-07-15 17:46发布

我在写一个室温调控的程序同时用到了定时器0和1。定时器1用的是工作方式1,定时器0用的是工作方式2,(初始化不启动定时器1,在程序后边在启动定时器1,         ET1=1;TR1=1;)。可是定时器1,溢出时间变快了 ,好像是        TMOD=0x10;        TMOD=0x02;冲突了?怎么回事啊?我把TMOD=0x10;删了,结果还是不变。
实在弄不明白了 请大神指教。
        EA=1;
        TMOD=0x10;//定时器T1初始化
        TH1=0x3c;
        TL1=0xb0;

        TMOD=0x02;
        TH0=0x00;        //定时器T0初始化
        TL0=0x00;
        ET0=1;
        TR0=1;
室温调控.zip 下载积分: 积分 -1 分
70.24 KB, 下载次数: 24, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
魏东
1楼-- · 2019-07-15 22:31
请大家帮帮忙 ,这个问题纠结好几天了
魏东
2楼-- · 2019-07-16 01:05
        TMOD=0x20;//定时器T1初始化
        TH1=0x06;
        TL1=0x06;
        EA=1;

        TMOD=0x02;
        TH0=0x00;        //定时器T0初始化
        TL0=0x00;
        ET0=1;
        TR0=1;
。。。。。。。。。


void dsq_t1() interrupt 3
{       
        TR1=0;
        us_250++;
        if(us_250==40000)
        {
                us_250=0;
                miao++;       
                if(miao==60)
                {
                        miao=0;
                        fen++;
                }
        }
        TR1=1;
}
t1就变慢 的好多
不知道哪出了问题
叫我松松
3楼-- · 2019-07-16 03:12
 精彩回答 2  元偷偷看……
魏东
4楼-- · 2019-07-16 08:38
叫我松松 发表于 2015-3-5 12:45
新手发言,说错勿喷。
EA=1;
        TMOD=0x10;//定时器T1初始化

是这么回事 ,那怎么处理呢?
joinking
5楼-- · 2019-07-16 13:33
魏东 发表于 2015-3-5 13:18
是这么回事 ,那怎么处理呢?

你刚入门的就别用方式0,用方式1,而且你要用到其他中断的时候别用赋值,会改变之前的赋值,TMOD = 0x20关于这个的都用TMOD |= 0x20写,这样不会改变你之前的设置
joinking
6楼-- · 2019-07-16 17:56
joinking 发表于 2015-3-5 13:54
你刚入门的就别用方式0,用方式1,而且你要用到其他中断的时候别用赋值,会改变之前的赋值,TMOD = 0x20 ...

不说你程序问题,你这个定时器是1us加一次的吧,50000次一次中断就是50ms,50*250*40000=500000000us=500s,你500s加一次miao能不慢吗?

一周热门 更多>