#include <Arduino.h>
#include <TimerOne.h> // Thư viện TimerOne cho Timer1
#include <MsTimer2.h> // Thư viện MsTimer2 cho Timer2
#define LED1_PIN 13 // Pin nối với LED1
#define LED2_PIN 12 // Pin nối với LED2
volatile bool led1_state = LOW;
volatile bool led2_state = LOW;
// Hàm callback cho Timer1
void toggleLed1() {
led1_state = !led1_state;
digitalWrite(LED1_PIN, led1_state);
}
// Hàm callback cho Timer2
void toggleLed2() {
led2_state = !led2_state;
digitalWrite(LED2_PIN, led2_state);
}
void setup() {
// Thiết lập các chân LED là OUTPUT
pinMode(LED1_PIN, OUTPUT);
pinMode(LED2_PIN, OUTPUT);
// Cấu hình và bắt đầu Timer1 với chu kỳ 1200ms
Timer1.initialize(1200000); // Thư viện TimerOne yêu cầu chu kỳ theo microseconds
Timer1.attachInterrupt(toggleLed1); // Gán hàm callback cho Timer1
// Cấu hình và bắt đầu Timer2 với chu kỳ 1500ms
MsTimer2::set(1500, toggleLed2); // Thư viện MsTimer2 yêu cầu chu kỳ theo milliseconds
MsTimer2::start(); // Bắt đầu Timer2
}
void loop() {
// Vòng lặp chính không cần làm gì vì việc bật/tắt LED do các Timer đảm nhận
}