微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 单片机2个定时器同时工作,为什么只能播放1个循环?

单片机2个定时器同时工作,为什么只能播放1个循环?

时间:10-02 整理:3721RD 点击:
uchar a[]={252,252,252,252,253,253};
uchar b[]={68,68,173,68,52,10};
uchar n[]={1,1,2,2,2,4};
sbit  BEEP=P3^6;
void main()
{
    TMOD=0x21;
    EA=1;
    ET0=1;
    ET1=1;
    TR1=1;
    TR0=1;
    i=0;
    t=0;
    TH0=a[i];
    TL0=b[i];
    TH1=0x06;
    TL1=0x06;
    while(1)
    {
    }
}
void t0(void) interrupt 1 using 0
{
        BEEP=~BEEP;
        TH0=a[i];
        TL0=b[i];
}
void t1(void) interrupt 3 using 0
{
    t++;
    if(t==1000)
    {
        t=0;
        n[i]--;
        if(n[i]==0)
        {
            TR0=0;
            i++;
            if(i==6)
            {
                i=0;
            }
            TR0=1;
        }
        TH1=0x06;
        TL1=0x06;
    }
}

执行完这条语句
if(i==6)
{
  i=0;
}后,i 的值一直是0,之前有句i++,没作用,循环不了。

没有人会么。

while(1)
    {
    }
不会报错吗?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top