回答

收藏

[每日一帖] 之12__计时值得色彩转换

#线上活动 #线上活动 1930 人阅读 | 0 人回复 | 2016-08-19

色彩时钟在正常运行时,是按照计时值来进行色彩值转换的,鉴于PWN调节的效果不如预想好,故改为闪动处理来替代,其处理函数如下:
  1. // 色彩指示处理
  2. void disp(char k)
  3. {          
  4.       // 关 LED  
  5.       RC = 0;
  6.           GC = 0;
  7.           BC = 0;
  8.           if(k==0)     //  红
  9.           {
  10.                 RC = 1;            
  11.         GC = 0;
  12.             BC = 0;
  13.       }
  14.       if(k==1)   
  15.              {
  16.         // 闪动式处理
  17.         for(j=0;j<10;j++)
  18.         {
  19.             /* 高电平占50% */
  20.                     RC = 1;
  21.                     GC = 1;
  22.                     Delay5ms(10);
  23.                 /* 低电平占50% */
  24.                     RC = 1;
  25.                     GC = 0;
  26.                     Delay5ms(10);
  27.         }
  28.       }
  29.           if(k==2)     //  黄
  30.           {
  31.                   RC = 1;
  32.               GC = 1;
  33.               BC = 0;
  34.       }
  35.       if(k==3)   
  36.              {
  37.         for(j=0;j<10;j++)
  38.         {
  39.             RC = 0;
  40.                     GC = 1;
  41.                     Delay5ms(10);
  42.                 RC = 1;
  43.                     GC = 1;
  44.                     Delay5ms(10);
  45.         }
  46.       }
  47.           if(k==4)     //  绿
  48.           {
  49.                   RC = 0;
  50.               GC = 1;
  51.               BC = 0;
  52.       }       
  53.       if(k==5)   
  54.              {
  55.         for(j=0;j<10;j++)
  56.         {
  57.             BC = 1;
  58.                     GC = 1;
  59.                     Delay5ms(10);
  60.                 BC = 0;
  61.                     GC = 1;
  62.                     Delay5ms(10);
  63.         }
  64.       }
  65.           if(k==6)     //  兰
  66.           {
  67.                   RC = 0;
  68.               GC = 1;
  69.               BC = 1;
  70.       }
  71.       if(k==7)   
  72.              {
  73.         for(j=0;j<10;j++)
  74.         {
  75.             BC = 1;
  76.                     GC = 1;
  77.                     Delay5ms(10);
  78.                 BC = 1;
  79.                     GC = 0;
  80.                     Delay5ms(10);
  81.         }
  82.       }               
  83.           if(k==8)     //  蓝
  84.           {
  85.                   RC = 0;
  86.               GC = 0;
  87.               BC = 1;
  88.       }
  89.       if(k==9)   
  90.              {
  91.         for(j=0;j<10;j++)
  92.         {
  93.             BC = 1;
  94.                     RC = 1;
  95.                     Delay5ms(10);
  96.                        BC = 1;
  97.                     RC = 0;
  98.                     Delay5ms(10);
  99.         }
  100.       }       
  101.           if(k==10)     //  粉
  102.           {
  103.                   RC = 1;
  104.               GC = 0;
  105.               BC = 1;
  106.       }
  107.       if(k==11)   
  108.              {
  109.         for(j=0;j<10;j++)
  110.         {
  111.             BC = 1;
  112.                     RC = 1;
  113.                     Delay5ms(10);
  114.                 BC = 0;
  115.                     RC = 1;
  116.                     Delay5ms(10);
  117.         }
  118.       }
  119.       if(k%2==0)  Delay5ms(200);
  120.         // 关LED
  121.         RC = 0;
  122.             GC = 0;
  123.             BC = 0;
  124. }
复制代码
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条