久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3052|回復: 11
打印 上一主題 下一主題
收起左側

求助這個C語言程序,怎么樣修改才能退出case9模式?

[復制鏈接]
跳轉到指定樓層
樓主
ID:389488 發表于 2020-8-26 13:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
void key()
{
        u8 j;
        static u8 cnt=0;
         key1=1;
         if(key1==0)
         {
                 delay(10);
                 if(key1==0)
           {
                   while(!key1);
                         cnt++;
                         if(cnt>=10)
                                 cnt=0;
                 }
         }
                 
         switch(cnt)
         {
                 
                 
                case 1:
                         for(j=10;j>0;j--)
                {
                 sendGRB(g);
                }
                break;

                case 2:
                         for(j=10;j>0;j--)
                {
                 sendGRB(r);
                }
                break;

                case 3:
                         for(j=10;j>0;j--)
                {
                 sendGRB(b);
                }
                break;

                case 4:
                         for(j=10;j>0;j--)
                {
                 sendGRB(bor);
                }
                break;

                case 5:
                         for(j=10;j>0;j--)
                {
                 sendGRB(bog);
                }
                break;

                case 6:
                         for(j=10;j>0;j--)
                {
                 sendGRB(gor);
                }
                break;

                case 7:
                         for(j=10;j>0;j--)
                {
                 sendGRB(white);
                }
                break;
               
        
                case 8:         
                for(j=10;j>0;j--)
                {
                 sendGRB(black);
                }
                break;
               
                case 9:         
                for(j=10;j>0;j--)
                {
                 zidong();
                }
                break;
               
                default:
                ws2812b=1;
                break;                 
   }
}

void main()
{
        
        while(1)
        {
                key();
         }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:155507 發表于 2020-8-26 15:44 | 只看該作者
你這個程序不完整,沒法給你看是哪里出問題了!
回復

使用道具 舉報

板凳
ID:389488 發表于 2020-8-27 07:42 | 只看該作者
#include<STC15.H>
#include<intrins.h>

#define u8 unsigned char
#define u16 unsigned int
#define u32 unsigned long
#define r 0x00ff00
#define g 0xff0000
#define b 0x0000ff
#define black 0x000000
#define white 0xffffff
#define bor 0x00ffff
#define bog 0xff00ff
#define gor 0xffff00



u32 grb;
sbit ws2812b=P5^4;
sbit led2=P5^5;
sbit key1=P3^3;


void delay(u16 z)
{
        u16 x;
        u8 y;
        for(x=z;x>0;x--)
        for(y=112;y>0;y--);
}
void write0()
{
        ws2812b=1;
        _nop_();
        ws2812b=0;
        _nop_();
        _nop_();
       
}

void write1()
{
        ws2812b=1;
        _nop_();
        _nop_();
        _nop_();
        ws2812b=0;
        _nop_();
       
}


void sendGRB(u32 grb)
{
          u8 i;
        for(i=24;i>0;i--)
        {
                if(grb&0x800000)
                        write1();
                else
                        write0();
                grb<<=1;
  }
}

void zidong()
{
        u8 j;
       
                         for(j=10;j>0;j--)
                {
                 sendGRB(g);
                }
                delay(65535);
               
                         for(j=10;j>0;j--)
                {
                 sendGRB(r);
                }
                delay(65535);
                         for(j=10;j>0;j--)
                {
                 sendGRB(b);
                }
                delay(65535);

       
       
                         for(j=10;j>0;j--)
                {
                 sendGRB(bor);
                }
                delay(65535);
               
                         for(j=10;j>0;j--)
                {
                 sendGRB(bog);
                }
                delay(65535);
               
                         for(j=10;j>0;j--)
                {
                 sendGRB(gor);
                }
                delay(65535);
               
                         for(j=10;j>0;j--)
                {
                 sendGRB(white);
                }
                delay(65535);
       
}

void key()
{
        u8 j;
        static u8 cnt=0;
         key1=1;
         if(key1==0)
         {
                 delay(10);
                 if(key1==0)
           {
                   while(!key1);
                         cnt++;
                         if(cnt>=10)
                                 cnt=0;
                 }
         }
        /* if(key2==0)
         {
                 delay(10);
                 if(key2==0)
           {
                   while(!key2);
                         zidong();
                 }
         }*/
         
         switch(cnt)
         {
                 
                 
                case 1:
                         for(j=10;j>0;j--)
                {
                 sendGRB(g);
                }
                //delay(65535);
                break;
                case 2:
                         for(j=10;j>0;j--)
                {
                 sendGRB(r);
                }
                //delay(65535);
                break;
                case 3:
                         for(j=10;j>0;j--)
                {
                 sendGRB(b);
                }
                //delay(65535);
                break;
                case 4:
                         for(j=10;j>0;j--)
                {
                 sendGRB(bor);
                }
                //delay(65535);
                break;
                case 5:
                         for(j=10;j>0;j--)
                {
                 sendGRB(bog);
                }
                //delay(65535);
                break;
                case 6:
                         for(j=10;j>0;j--)
                {
                 sendGRB(gor);
                }
                //delay(65535);
                break;
                case 7:
                         for(j=10;j>0;j--)
                {
                 sendGRB(white);
                }
                //delay(65535);
                break;
               
       
                case 8:
                         
                for(j=10;j>0;j--)
                {
                 sendGRB(black);
                }
                //delay(65535);
                break;
               
                case 9:
                         
                for(j=10;j>0;j--)
                {
                 zidong();
                }
                //delay(65535);
                break;
               
                default:
                ws2812b=1;
               
                break;
       
         
                 
   }
}

void main()
{
       
        while(1)
        {
                key();
               
  }
}
回復

使用道具 舉報

地板
ID:389488 發表于 2020-8-27 13:26 | 只看該作者
angmall 發表于 2020-8-26 15:44
你這個程序不完整,沒法給你看是哪里出問題了!

全部貼出來了,幫忙看看
回復

使用道具 舉報

5#
ID:213173 發表于 2020-8-27 19:17 | 只看該作者
zzh2118 發表于 2020-8-27 13:26
全部貼出來了,幫忙看看

樓主認為case 9 不能退出是沒有依據的,由于樓主這槽糕的代碼
                case 9:               
                for(k=10;k>0;k--)
                {
                        zidong();
                }
                break;               
會運行很長、很長、很長時間,只要你有耐心等就會等到break;跳出。
回復

使用道具 舉報

6#
ID:213173 發表于 2020-8-27 20:46 | 只看該作者
zzh2118 發表于 2020-8-27 13:26
全部貼出來了,幫忙看看

做了一個標記,仿真運行了20多分鐘才從 case 9: 跳出。
回復

使用道具 舉報

7#
ID:389488 發表于 2020-8-28 07:41 | 只看該作者
wulin 發表于 2020-8-27 20:46
做了一個標記,仿真運行了20多分鐘才從 case 9: 跳出。

謝謝解答
回復

使用道具 舉報

8#
ID:146782 發表于 2020-8-28 09:08 | 只看該作者
zidong里的延時很長很長,應該可以喝杯茶的時間
回復

使用道具 舉報

9#
ID:389488 發表于 2020-8-29 09:48 | 只看該作者
aayon1979 發表于 2020-8-28 09:08
zidong里的延時很長很長,應該可以喝杯茶的時間

是的,謝謝回答
回復

使用道具 舉報

10#
ID:314077 發表于 2020-8-29 10:03 | 只看該作者
    delay(65535)這個延時改一下會好一些吧
回復

使用道具 舉報

11#
ID:389488 發表于 2020-9-2 08:09 | 只看該作者
相今 發表于 2020-8-29 10:03
delay(65535)這個延時改一下會好一些吧

是的 改小就有效果了
回復

使用道具 舉報

12#
ID:691028 發表于 2020-9-2 09:13 | 只看該作者
延時時間一共為7個65535時鐘,得等很久才能執行完成
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕一二三区 | 欧美理伦片在线播放 | 亚洲美女在线一区 | 国产综合在线视频 | 国产电影一区二区在线观看 | 精品国产91乱码一区二区三区 | 精品久久久久一区二区国产 | 91精品观看 | 欧美一级毛片免费观看 | 中文字幕一区二区在线观看 | 国产精品成人免费 | 亚洲 欧美 另类 综合 偷拍 | 欧美精品乱码久久久久久按摩 | 久久人人爽人人爽人人片av免费 | 欧美一区二区在线 | 欧美日韩国产中文字幕 | 天天爱综合 | 亚洲一区二区三区在线视频 | 久久88| 欧美日韩精品免费 | 日韩在线免费电影 | 夜夜操天天操 | 日韩一区二区三区精品 | 国产69久久精品成人看动漫 | 国产三区在线观看视频 | 日韩精品免费在线观看 | 欧美一区二区在线观看 | 欧洲性生活视频 | 成人国产在线观看 | www.av在线| 一级片免费观看 | 国产精品99久久久久久久vr | 久久69精品久久久久久国产越南 | 成人av在线播放 | 夜夜夜夜夜夜曰天天天 | 亚洲精品乱码久久久久久久久 | 一区二区精品电影 | 久久久青草婷婷精品综合日韩 | 亚洲三区在线观看 | 欧美亚洲综合久久 | 成人欧美日韩一区二区三区 |