设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 778|回复: 0
收起左侧

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

[复制链接]
发表于 2022-7-5 19:41:47 | 显示全部楼层 |阅读模式
main.png
  1. #define u8 unsigned char
  2. #define u16 unsigned int
  3. #include "MsTimer2.h"
  4. #define LED 13    //13号引脚
  5. void setup() {
  6.   pinMode(LED, OUTPUT);   //输出引脚
  7.   MsTimer2::set(1,ms1);   //1ms定时器
  8.   MsTimer2::start();    //开定时器中断
  9. }
  10. u8 pwm = 0;     //LED亮度 值越大越亮

  11. void loop() {
  12.   static u8 i=0;
  13.   digitalWrite(LED,(i < pwm) ? 1 : 0);
  14.   if(++i == 255) i=0;
  15. }

  16. void ms1(){   //1ms定时器中断
  17.   static u8 ms=0;
  18.   static char k=1;
  19.     if(++ms >= 10){
  20.      ms=0;
  21.     if(k){
  22.       pwm++;
  23.     } else {
  24.       pwm--;
  25.     }
  26.     if(pwm == 0 || pwm == 255){
  27.       k = !k;
  28.     }
  29.    }
  30.   }
复制代码

相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-3-29 00:05 , Processed in 0.495028 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表