// void Task1(void * par);
// void Task2(void * par);
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2);
int led1 = 1;
int led2 = 1;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
//lcd
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Hello");
xTaskCreatePinnedToCore(Task2, "task2", 1024, NULL, 2, NULL, 0);
xTaskCreatePinnedToCore(Task1, "task1", 1024, NULL, 1, NULL, 0);
}
void update(int l1, int l2){
if(l1 == 0 && l2 == 0){
lcd.setCursor(0, 0);
lcd.print("LED1: OFF");
lcd.setCursor(0, 1);
lcd.print("LED2: OFF");
}else if(l1 == 1 && l2 == 0){
lcd.setCursor(0, 0);
lcd.print("LED1: ON ");
lcd.setCursor(0, 1);
lcd.print("LED2: OFF");
}else if(l1 == 0 && l2 == 1){
lcd.setCursor(0, 0);
lcd.print("LED1: OFF");
lcd.setCursor(0, 1);
lcd.print("LED2: ON ");
}else{
lcd.setCursor(0, 0);
lcd.print("LED1: ON ");
lcd.setCursor(0, 1);
lcd.print("LED2: ON ");
}
delay(100);
}
void loop() {
update(led1, led2);
}
void Task2(void * par){
(void) par;
pinMode(18, OUTPUT);
while(1){
digitalWrite(18, 1);
led1 = 1;
vTaskDelay(2000);
led1 = 0;
digitalWrite(18, 0);
vTaskDelay(3000);
}
}
void Task1(void * par){
(void) par;
pinMode(19, OUTPUT);
while(1){
digitalWrite(19, 1);
led2 = 1;
vTaskDelay(2500);
led2 = 0;
digitalWrite(19, 0);
vTaskDelay(500);
}
}