a00ede298e
Co-authored-by: Hemanth Bollamreddi <hbollamreddi@vmware.com>
74 lines
2.1 KiB
C++
74 lines
2.1 KiB
C++
/* Blink Example
|
|
This example code is in the Public Domain (or CC0 licensed, at your option.)
|
|
Unless required by applicable law or agreed to in writing, this
|
|
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
CONDITIONS OF ANY KIND, either express or implied.
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <freertos/FreeRTOS.h>
|
|
#include <freertos/task.h>
|
|
#include <driver/gpio.h>
|
|
#include "sdkconfig.h"
|
|
#include <Arduino.h>
|
|
|
|
/* Can run 'make menuconfig' to choose the GPIO to blink,
|
|
or you can edit the following line and set a number here.
|
|
*/
|
|
#define BLINK_GPIO (gpio_num_t)CONFIG_BLINK_GPIO
|
|
|
|
#ifndef LED_BUILTIN
|
|
#define LED_BUILTIN 4
|
|
#endif
|
|
|
|
void blink_task(void *pvParameter)
|
|
{
|
|
/* Configure the IOMUX register for pad BLINK_GPIO (some pads are
|
|
muxed to GPIO on reset already, but some default to other
|
|
functions and need to be switched to GPIO. Consult the
|
|
Technical Reference for a list of pads and their default
|
|
functions.)
|
|
*/
|
|
gpio_pad_select_gpio(BLINK_GPIO);
|
|
/* Set the GPIO as a push/pull output */
|
|
gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
|
|
while(1) {
|
|
/* Blink off (output low) */
|
|
gpio_set_level(BLINK_GPIO, 0);
|
|
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
|
/* Blink on (output high) */
|
|
gpio_set_level(BLINK_GPIO, 1);
|
|
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
|
}
|
|
}
|
|
|
|
#if !CONFIG_AUTOSTART_ARDUINO
|
|
void arduinoTask(void *pvParameter) {
|
|
pinMode(LED_BUILTIN, OUTPUT);
|
|
while(1) {
|
|
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
|
|
delay(1000);
|
|
}
|
|
}
|
|
|
|
extern "C" void app_main()
|
|
{
|
|
// initialize arduino library before we start the tasks
|
|
initArduino();
|
|
|
|
xTaskCreate(&blink_task, "blink_task", configMINIMAL_STACK_SIZE, NULL, 5, NULL);
|
|
xTaskCreate(&arduinoTask, "arduino_task", configMINIMAL_STACK_SIZE, NULL, 5, NULL);
|
|
}
|
|
#else
|
|
void setup() {
|
|
Serial.begin(115200);
|
|
xTaskCreate(&blink_task, "blink_task", configMINIMAL_STACK_SIZE, NULL, 5, NULL);
|
|
pinMode(LED_BUILTIN, OUTPUT);
|
|
}
|
|
void loop() {
|
|
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
|
|
Serial.println("Hello!");
|
|
delay(1000);
|
|
}
|
|
#endif
|