arduino编程单片机 控制让两盏led灯各自闪烁,一盏灯亮1秒然后灭1秒,并保持此频率闪烁。另 15
arduino编程单片机控制让两盏led灯各自闪烁,一盏灯亮1秒然后灭1秒,并保持此频率闪烁。另外一盏灯亮3秒然后灭3秒,并保持此频率闪烁。需要流程和编程急!跪求大神帮忙...
arduino编程单片机
控制让两盏led灯各自闪烁,一盏灯亮1秒然后灭1秒,并保持此频率闪烁。另外一盏灯亮3秒然后灭3秒,并保持此频率闪烁。
需要流程和编程
急!
跪求大神帮忙🙏 展开
控制让两盏led灯各自闪烁,一盏灯亮1秒然后灭1秒,并保持此频率闪烁。另外一盏灯亮3秒然后灭3秒,并保持此频率闪烁。
需要流程和编程
急!
跪求大神帮忙🙏 展开
1个回答
展开全部
#include <MsTimer2.h>
// 定义LED的引脚
#define LED_PIN_A 1
#define LED_PIN_B 2
// 时间定义宏
#define TM_MS(n) (n)
static uint16_t timerCntA;
static uint16_t timerCntB;
void TimerCbk (void);
void setup()
{
pinMode(LED_PIN_A , OUTPUT);
pinMode(LED_PIN_B , OUTPUT);
// 设置为每1ms调用一次TimerCbk函数。
MsTimer2::set(1, TimerCbk);
MsTimer2::start();
}
void loop()
{
if (timerCntA >= TM_MS(1000))
{
digitalWrite(LED_PIN_A, !digitalRead(LED_PIN_A));
timerCntA = 0;
}
if (timerCntB >= TM_MS(3000))
{
digitalWrite(LED_PIN_B, !digitalRead(LED_PIN_B));
timerCntB = 0;
}
}
void TimerCbk (void)
{
(timerCntA < UINT16_MAX) ? (timerCntA++) : (timerCntA = 0);
(timerCntB < UINT16_MAX) ? (timerCntB++) : (timerCntB = 0);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询