INO 发表于 2022-7-5 19:41:47

Arduino UNO PWM LED呼吸灯程序源码 (软件模拟PWM发生器+1ms定时器中断实现)


#define u8 unsigned char
#define u16 unsigned int
#include "MsTimer2.h"
#define LED 13    //13号引脚
void setup() {
pinMode(LED, OUTPUT);   //输出引脚
MsTimer2::set(1,ms1);   //1ms定时器
MsTimer2::start();    //开定时器中断
}
u8 pwm = 0;   //LED亮度 值越大越亮

void loop() {
static u8 i=0;
digitalWrite(LED,(i < pwm) ? 1 : 0);
if(++i == 255) i=0;
}

void ms1(){   //1ms定时器中断
static u8 ms=0;
static char k=1;
    if(++ms >= 10){
   ms=0;
    if(k){
      pwm++;
    } else {
      pwm--;
    }
    if(pwm == 0 || pwm == 255){
      k = !k;
    }
   }
}
页: [1]
查看完整版本: Arduino UNO PWM LED呼吸灯程序源码 (软件模拟PWM发生器+1ms定时器中断实现)