#if CONFIG_FREERTOS_UNICORE
#define ARDUINO_RUNNING_CORE 0
#else
#define ARDUINO_RUNNING_CORE 1
#endif
#define ANALOG_INPUT_PIN 2
//#ifndef LED_BUILTIN
#define LED_BUILTIN 16
//#endif
void TaskBlink( void *pvParameters );
void TaskAnalogRead( void *pvParameters );
TaskHandle_t analog_read_task_handle;
void setup() {
Serial.begin(115200);
uint32_t blink_delay = 1000;
xTaskCreate(TaskBlink, "Task Blink", 2048, (void*) &blink_delay, 2, NULL);
//xTaskCreatePinnedToCore(TaskAnalogRead, "Analog Read", 2048, NULL, 1, &analog_read_task_handle, ARDUINO_RUNNING_CORE);
xTaskCreate(TaskAnalogRead, "Analog Read", 2048, NULL, 1, NULL);
Serial.printf("Basic Multi Threading Arduino Example\n");
}
void loop(){
//if(analog_read_task_handle != NULL){
// delay(10000);
// vTaskDelete(analog_read_task_handle);
// analog_read_task_handle = NULL;
//}
}
void TaskBlink(void *pvParameters){
uint32_t blink_delay = *((uint32_t*)pvParameters);
pinMode(LED_BUILTIN, OUTPUT);
for (;;){
//digitalWrite(LED_BUILTIN, HIGH);
//delay(blink_delay);
//digitalWrite(LED_BUILTIN, LOW);
analogWrite(LED_BUILTIN, 255);
delay(blink_delay);
analogWrite(LED_BUILTIN, 0);
delay(blink_delay);
}
}
void TaskAnalogRead(void *pvParameters){
(void) pvParameters;
//if(!adcAttachPin(ANALOG_INPUT_PIN)){
// Serial.printf("TaskAnalogRead cannot work because the given pin %d cannot be used for ADC - the task will delete itself.\n", ANALOG_INPUT_PIN);
// analog_read_task_handle = NULL;
// vTaskDelete(NULL);
//}
for (;;){
int sensorValue = analogRead(ANALOG_INPUT_PIN);
Serial.println(sensorValue);
delay(100);
}
}