#include <Arduino_FreeRTOS.h>
//#include "task.h"
TaskHandle_t TaskHandle_2 ; // handler de Task2
const int tau = 50; //délai de retard
int intru = 0;
void setup ()
{
Serial .begin (9600 ); // Enable serial communication library.
pinMode (4, INPUT ); // entrée du capteur de présence
pinMode(9, INPUT); //capteur de présence TOR
pinMode (7, OUTPUT ); //témoin système demarré sur le pin 7
pinMode (13, OUTPUT ); //témoin visuel de l'alarme sur le pin num. 13
pinMode (11, OUTPUT );//tonalité de l'alarme pin 11
xTaskCreate (Task1 , "Surveillance" , 100 , NULL , 1, NULL ); /* ……………………………………………
………………………………………………………………………………………………………………...*/
vTaskStartScheduler (); // ………………………………………………………………………………….
}
void loop ()
{
// ne rien faire
}
void Task1 (void * pvParameters ) // ……………………………………………………………………….
{
while (1){
if(digitalRead (4)){ // …………………………………………...
Serial .println ("Survéillance active.." );
digitalWrite(7, HIGH);
//vTaskDelay(tau/portTICK_PERIOD_MS);//delay(tau); // mise en attente d’une durée de tau (ms)
if (digitalRead(9))
{
xTaskCreate (Task_alarme , "Alarme" , 100 , NULL , 2, &TaskHandle_2); /*…………………………………........*/
}
}
}
}
void Task_alarme(void * pvParameters){
while(1){
digitalWrite(7, LOW);
digitalWrite(13, HIGH);
Serial .println ("Intrusion!");
tone(11, 600, 50);
if(!digitalRead (4)){
Serial .println ("----------Alarme désactivée!-------------");
digitalWrite(13, LOW);//delay(500);
vTaskDelete (NULL); // Désactiver l'alarme
}
//else noTone(11);//vTaskDelay(tau/portTICK_PERIOD_MS);//delay(100);
//taskYIELD();
}
}
/*
void blink_LED(void * pvParameters){
digitalWrite(13, HIGH);
delay(10);//vTaskDelay(tau/portTICK_PERIOD_MS);
digitalWrite(13, LOW);
delay(10);//vTaskDelay(tau/portTICK_PERIOD_MS);//delay(tp_ms);
vTaskDelete(NULL);
}
*/