Manual

do

Maker

.

com

Desafio maker 05: Pausar processamento (ESP32)

Desafio maker 05: Pausar processamento (ESP32)

Imagine que devemos pausar processamento; temos 4 tasks, cada uma cumpre uma tarefa a seu tempo:

  • task1 - abrir vazão para entrada de leite por 10 segundos.
  • task2 - abrir vazão para entrada de mistura para bolo por 12 segundos.
  • task3 - bater a mistura por 30 segundos.
  • task4 - abrir vazão de saída da mistura por 30 segundos.
  • Reinicia o processo.

Se usa ESP32 e tasks, essa está fácil, hum? Se ainda não usa tasks, pode começar por esse outro artigo.

O desafio - Pausar processamento

O desafio não é a rotina em si, mas o seguinte: há um botão que, quando pulsado, deve pausar o processo. Não pode fazer polling para saber qual tarefa está em execução; não pode colocar a MCU pra dormir; não pode criar uma condicional para servir de flag dentro das tasks.

Ah! Não pode usar queue, nem mutex, nem semáforos.

Referências

Pausar processamento é uma tarefa simples, mas tem formas "mais" ou "menos" eficientes. Se precisar de referências, leia os primeiros artigos sobre ESP32 aqui no blog, clicando no link a seguir e depois no rodapé, clique na última página. Tudo o que precisa para executar esse desafio está descrito nos artigos iniciais sobre ESP32.

Utilize sua IDE preferida, mas recomendo o VS Code com PlatformIO, que lhe dará mais flexibilidade no desenvolvimento.

Definições

Para que tenhamos um pouco mais de sintonia, recomendo que nomeie as tasks assim:

task1 - para task1

task2 - para a mistura de bolo

task3 - para bater a mistura

task4 - para a saída da massa pronta

Dica

A solução estará na declaração da task. Mais fácil que isso só acender um LED usando programação em blocos, hum?

O botão pode ser monitorado por polling ou interrupção, faça sua escolha.

Se precisar baixar o VS Code, pegue-o no site oficial através de link.

Para instalar o PlatformIO, clique no quadrado fragmentado do menu vertical esquerdo (segundo, de baixo para cima) e busque pela palavra chave. Após instalar, reinicie a IDE e abrir-se-á o home do PlatformIO

platformio-38x300.webp

Até a resposta do desafio!

Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.