Questo e' il classico di Blink del pin 13 pero' compilato usando un task di FreeRTOS.
Questa configurazione permette di lanciare il task e poi di addormentare il processore.
Il classico esempio blink "consuma" circa 45 mA mentre con questo codice circa 20 mA
Un altro aspetto non trascurabile e' si puo' impostare il tempo di lampeggio sopra gli 8 secondi
Con il codice normale di Arduino l'unico metodo di risvegliare il processore e' quello derivante da un interrupt derivante dal watchdog (impostabile al massimo ad 8 secondi) oppure si deve utilizzare un interrupt esterno derivante da un RTC esterno
--------------------------------------------------------------------------------------
#include <Arduino_FreeRTOS.h>
#include <avr/sleep.h>
#include <avr/power.h>
void TaskBlink( void *pvParameters );
void setup() {
xTaskCreate(TaskBlink,(const portCHAR *)"Blink",128 ,NULL,2,NULL);
}
void loop()
{
power_adc_disable(); //ADC
power_spi_disable(); //SPI
power_twi_disable(); //I2C
//set_sleep_mode( SLEEP_MODE_PWR_DOWN );
set_sleep_mode( SLEEP_MODE_EXT_STANDBY);
portENTER_CRITICAL();
sleep_enable();
#if defined(BODS) && defined(BODSE)
sleep_bod_disable();
#endif
portEXIT_CRITICAL();
sleep_cpu();
sleep_reset();
}
void TaskBlink(void *pvParameters) // This is a task.
{
(void) pvParameters;
pinMode(LED_BUILTIN, OUTPUT);
for (;;)
{
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( 7000 / portTICK_PERIOD_MS ); // wait for one second
}
}
Iscriviti a:
Commenti sul post (Atom)
Frane da drone con rete UNET
Alla ricerca di immagini di training gia' pronte per reti neurali mi sono imbattuto nel CAS Landslide Database (scaricabile da https://...
-
Per lo shield WiFly e' stata effettuata la patch descritta qui Per la connessione del lettore Rfid si usano i seguenti pin VCC ...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
Nessun commento:
Posta un commento