5-3-多人定时器间隔定时

实训项目:多个定时器间隔定时

程序代码

#include <Arduino.h>

#define Pin1 4
#define Pin2 5
#define Pin3 48

void Init_Pins()
{
  pinMode(Pin1, OUTPUT);
  pinMode(Pin2, OUTPUT);
  pinMode(Pin3, OUTPUT);
}

//======================================

/*中断服务函数*/

void Serve_Timer1()
{
  digitalWrite(Pin1, !digitalRead(Pin1));
}
void Serve_Timer2()
{
  digitalWrite(Pin2, !digitalRead(Pin2));
}
void Serve_Timer3()
{
  digitalWrite(Pin3, !digitalRead(Pin3));
}

//=======================================

hw_timer_t *tim0 = NULL;
hw_timer_t *tim1 = NULL;
hw_timer_t *tim2 = NULL;

void Init_Timer()
{
  tim0 = timerBegin(0, 80, true);
  timerAttachInterrupt(tim0, Serve_Timer1, true);
  timerAlarmWrite(tim0, 1000000, true);
  timerAlarmEnable(tim0);

  tim1 = timerBegin(1, 80, true);
  timerAttachInterrupt(tim1, Serve_Timer2, true);
  timerAlarmWrite(tim1, 2000000, true);
  timerAlarmEnable(tim1);
  
  tim2 = timerBegin(2, 80, true);
  timerAttachInterrupt(tim2, Serve_Timer3, true);
  timerAlarmWrite(tim2, 5000000, false);
  timerAlarmEnable(tim2);
}

void setup()
{
  Init_Pins();
  Init_Timer();
}

void loop()
{

}
posted @ 2024-09-10 22:58  ZHYWJML  阅读(9)  评论(0)    收藏  举报