Last active
October 8, 2019 20:33
-
-
Save jonasbits/e573224c637ec587abf72a1d09172b9e to your computer and use it in GitHub Desktop.
Uno or F103RB build files in PlatformIO (subset of files, please read main.cpp and platformio.ini)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Arduino.h> | |
#if defined ARDUINO_AVR_UNO || defined ARDUINO_AVR_LEONARDO | |
#include <Arduino_FreeRTOS.h> | |
#elif defined ARDUINO_NUCLEO_F103RB | |
#include <STM32FreeRTOS.h> | |
#elif defined ARDUINO_DISCO_L072CZ_LRWAN1 | |
#include <STM32FreeRTOS.h> | |
#endif | |
// define two tasks for Blink & AnalogRead | |
void TaskBlink( void *pvParameters ); | |
void TaskAnalogRead( void *pvParameters ); | |
// the setup function runs once when you press reset or power the board | |
void setup() { | |
// initialize serial communication at 9600 bits per second: | |
Serial.begin(9600); | |
while (!Serial) { | |
; // wait for serial port to connect. Needed for native USB, on LEONARDO, MICRO, YUN, and other 32u4 based boards. | |
} | |
// Now set up two tasks to run independently. | |
xTaskCreate( | |
TaskBlink | |
, (const portCHAR *)"Blink" // A name just for humans | |
, 128 // This stack size can be checked & adjusted by reading the Stack Highwater | |
, NULL | |
, 2 // Priority, with 3 (configMAX_PRIORITIES - 1) being the highest, and 0 being the lowest. | |
, NULL ); | |
xTaskCreate( | |
TaskAnalogRead | |
, (const portCHAR *) "AnalogRead" | |
, 128 // Stack size | |
, NULL | |
, 1 // Priority | |
, NULL ); | |
// Now the task scheduler, which takes over control of scheduling individual tasks, is automatically started. | |
} | |
void loop() | |
{ | |
// Empty. Things are done in Tasks. | |
} | |
/*--------------------------------------------------*/ | |
/*---------------------- Tasks ---------------------*/ | |
/*--------------------------------------------------*/ | |
void TaskBlink(void *pvParameters) // This is a task. | |
{ | |
(void) pvParameters; | |
/* | |
Blink | |
Turns on an LED on for one second, then off for one second, repeatedly. | |
Most Arduinos have an on-board LED you can control. On the UNO, LEONARDO, MEGA, and ZERO | |
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN takes care | |
of use the correct LED pin whatever is the board used. | |
The MICRO does not have a LED_BUILTIN available. For the MICRO board please substitute | |
the LED_BUILTIN definition with either LED_BUILTIN_RX or LED_BUILTIN_TX. | |
e.g. pinMode(LED_BUILTIN_RX, OUTPUT); etc. | |
If you want to know what pin the on-board LED is connected to on your Arduino model, check | |
the Technical Specs of your board at https://www.arduino.cc/en/Main/Products | |
This example code is in the public domain. | |
modified 8 May 2014 | |
by Scott Fitzgerald | |
modified 2 Sep 2016 | |
by Arturo Guadalupi | |
*/ | |
// initialize digital LED_BUILTIN on pin 13 as an output. | |
pinMode(LED_BUILTIN, OUTPUT); | |
for (;;) // A Task shall never return or exit. | |
{ | |
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) | |
vTaskDelay( 1000 / portTICK_PERIOD_MS ); // wait for one second | |
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW | |
vTaskDelay( 1000 / portTICK_PERIOD_MS ); // wait for one second | |
} | |
} | |
void TaskAnalogRead(void *pvParameters) // This is a task. | |
{ | |
(void) pvParameters; | |
/* | |
AnalogReadSerial | |
Reads an analog input on pin 0, prints the result to the serial monitor. | |
Graphical representation is available using serial plotter (Tools > Serial Plotter menu) | |
Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground. | |
This example code is in the public domain. | |
*/ | |
for (;;) | |
{ | |
// read the input on analog pin 0: | |
int sensorValue = analogRead(A0); | |
// print out the value you read: | |
Serial.println(sensorValue); | |
vTaskDelay(1); // one tick delay (15ms) in between reads for stability | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;PlatformIO Project Configuration File | |
; | |
; Build options: build flags, source filter | |
; Upload options: custom upload port, speed and extra flags | |
; Library options: dependencies, extra library storages | |
; Advanced options: extra scripting | |
; | |
; Please visit documentation for the other options and examples | |
; https://docs.platformio.org/page/projectconf.html | |
[platformio] | |
;;only one | |
default_envs = leonardo ;nucleo_f103rb, disco_l072cz_lrwan1, uno, leonardo | |
;;all | |
;default_envs = uno, leonardo, nucleo_f103rb, disco_l072cz_lrwan1 | |
[env:uno] | |
platform = atmelavr | |
board = uno | |
framework = arduino | |
lib_deps = | |
FreeRTOS@>=10.2.0-3 ;id 507 | |
[env:leonardo] | |
platform = atmelavr | |
board = leonardo | |
framework = arduino | |
lib_deps = | |
FreeRTOS@>=10.2.0-3 ;id 507 | |
[env:nucleo_f103rb] | |
platform = ststm32 | |
board = nucleo_f103rb | |
framework = arduino | |
lib_deps = | |
STM32duino FreeRTOS@>=10.0.1 ;id 2093 | |
[env:disco_l072cz_lrwan1] | |
platform = ststm32 | |
board = disco_l072cz_lrwan1 | |
framework = arduino | |
lib_deps = | |
STM32duino FreeRTOS@>=10.0.1 ;id 2093 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment