/*
程序: FREERTOS - 单个参数传递
大家在看本程序的时候,需要对指针非常的了解
知道 * -> &的作用
作业: 添加LED3_PIN 15
公众号:孤独的二进制
*/
byte LED1_PIN = 23;
byte LED2_PIN = 21;
void task1(void *pt) {
byte * pbLEDPIN;
pbLEDPIN = (byte *)pt;
byte LEDPIN;
LEDPIN = *pbLEDPIN;
pinMode(LEDPIN, OUTPUT);
while (1) {
digitalWrite(LEDPIN, !digitalRead(LEDPIN));
vTaskDelay(1000);
}
}
void task2(void *pt) {
byte LEDPIN = *(byte *)pt;
pinMode(LEDPIN, OUTPUT);
while (1) {
digitalWrite(LEDPIN, !digitalRead(LEDPIN));
vTaskDelay(3000);
}
}
void setup() {
Serial.begin(9600);
byte * pbLED1PIN;
pbLED1PIN = &LED1_PIN;
void * pvLED1PIN;
pvLED1PIN = (void *)pbLED1PIN;
if (xTaskCreate(task1,
"Blink 23",
1024,
pvLED1PIN,
1,
NULL) == pdPASS)
Serial.println("Task1 Created.");
if (xTaskCreate(task2,
"Blink 21",
1024,
(void *)&LED2_PIN,
1,
NULL) == pdPASS)
Serial.println("Task2 Created.");
}
void loop() {
}