发新帖我要提问
12
返回列表
打印

8个二极管以200ms的间隔连续依次闪烁5次

[复制链接]
楼主: langgq
手机看帖
扫描二维码
随时随地手机跟帖
21
zhanglli| | 2021-4-12 17:36 | 只看该作者 回帖奖励 |倒序浏览

问题在于num1 == 4 之类的条件成立可持续50ms,而主程序循环跑得很快,在50ms里灯的状态会不停的快速变换
uchar  last_num;
if(last_num == num1)
    continue;
else
    last_num = num1;
后面的处理怎么方便怎么做就好了

使用特权

评论回复
22
supernan| | 2021-4-12 17:38 | 只看该作者

void  T0_timer()   interrupt 1
{
       num1++;
       if  (num1==4)
       {
                num1=0;
                Bflash=1;
       }
}


uchar  sta=0x01, counter=0;

while(1)
{
          if  (Bflash)
          {
                 Bflash=0;
                 sta=~sta;
                 counter++;

                  if (counter==6)
                  {
                          counter=0;
                          sta=sta<<1;         if (!sta)   sta=0x01;
                  }
                 
                  P1=sta;
          }
更多操作

使用特权

评论回复
23
langgq|  楼主 | 2021-4-12 17:39 | 只看该作者

哦,那我就知道怎么回事了,多谢大家

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则