/*PROVA PRATICA 1
ENUNCIADO DA QUESTÃO
- Execute duas tarefas, sendo que a tarefa1 deve fazer um LED piscar
constantemente, em intervalos de 250ms, e a tarefa2 deve implementar
um contador que é incrementado em uma unidade a cada 0,5s
(mostar a contagem no monitor serial);
- Quando o contador da tarefa2 atingir o valor de 50 unidades ou o botão
for precionado, a tarefa1 deverá ser excluída, e esta condição será
enviada ao monitor serial. A partir deste momento, o LED permanecerá
desligado e a tarefa2 continuará a funionar.*/
TaskHandle_t Pisca;
TaskHandle_t Cont;
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
pinMode(5, INPUT_PULLUP);
xTaskCreate(ledBlink, "Pisca LED", 1000, NULL, 1, &Pisca);
xTaskCreate(contador, "Contador", 1000, NULL, 1, &Cont);
}
void loop() {
}
void ledBlink (void *parametro){
while(true){
digitalWrite(13, !digitalRead(13));
vTaskDelay(250/portTICK_PERIOD_MS);
}
}
void contador (void *parametro){
int counter = 0;
while(true){
Serial.print("Contador = ");
Serial.println(counter);
if(counter == 50 || digitalRead(5) == LOW){
digitalWrite(13, LOW);
Serial.println("Tarefa Pisca LED foi encerrada!");
vTaskDelete(Pisca);
}
counter++;
vTaskDelay(500/portTICK_PERIOD_MS);
}
}