zoukankan      html  css  js  c++  java
  • STM32_呼吸灯

    /*项目:呼吸灯
        方法:通过延时来控制灯的亮和灭的时间,实现对灯的亮度的控制
        
    */
    #include "stm32f10x.h"
    #include "stm32f10x_gpio.h"
    #include "led.h"
    #include "breath.h"
    #define bbb 5000 
    void breath(){
        //定义三个无符号整形,i控制灯亮/灭的时间,j控制的是灯亮和灭的亮度变化,k控制的是整个呼吸灯的时间
        unsigned int i=0,j=0,k;
        while(1){ 
            //通过循环来控制呼吸灯的总时间
        for(k=0;k<bbb;k++){
            //红灯灭掉
          RED_OFF
            //红灯持续灭的时间
            //这时bbb-j的值是最大的,也就是灯最暗的时候
          for(i=0;i<bbb-j;i++);
            //红灯亮
          RED_ON
            /*红灯亮持续的时间
            因为控制整个呼吸灯的时间是一定的,所以控制亮和灭的值加起来要等于bbb,
            所以这时的bbb-(bbb-j)的值是最小的,也就是几乎不亮*/
          for(i=0;i<bbb-(bbb-j);i++);
            j++;//j++来控制灯的亮灭程度
        if(j==bbb){
            j=0;
            
        }
    }
        for(k=0;k<bbb;k++){
          YELLOW_OFF
          for(i=0;i<bbb-(bbb-j);i++);
          YELLOW_ON
          for(i=0;i<bbb-j;i++);
         j++;
        if(j==bbb){
            j=0;
        }
    }
        for(k=0;k<bbb;k++){
          PURPLE_OFF
          for(i=0;i<bbb-(bbb-j);i++);
          PURPLE_ON
          for(i=0;i<bbb-j;i++);
         j++;
        if(j==bbb){
            j=0;
        }
    }
        YELLOW_OFF
      RED_OFF
      PURPLE_OFF
        }
    }

    学习交流可以联系QQ:1714066988

  • 相关阅读:
    Qt中widget重新setParent需要注意的问题
    在有状态机下,写自动测试需要注意的问题
    C#获取当前路径的7种方法
    VS快捷键大全
    [WPF]设置背景色
    [WPF]建立自适应窗口大小布局的WinForm窗口
    [WPF]Slider控件常用方法
    [C#.NET]
    VB中的API详解
    VB6.0和VB.Net的函数等对照表
  • 原文地址:https://www.cnblogs.com/liangjinjie/p/8029969.html
Copyright © 2011-2022 走看看