Projeto 07: Timers de Hardware e Temporização sem Bloqueio 🚀
Escopo do Projeto
Objetivo: Implementar uma solução de engenharia embarcada completa para validação prática dos conceitos de Timers de Hardware e Temporização sem Bloqueio.
🎯 1. Contexto & Desafio de Engenharia
Você atua como engenheiro de firmware em uma empresa de automação e Internet das Coisas (IoT). O cliente necessita de um subsistema confiável baseado em microcontroladores que resolva os requisitos de Timers de Hardware e Temporização sem Bloqueio em regime contínuo (24/7), com alta imunidade a ruídos elétricos e consumo otimizado.
📋 2. Requisitos Obrigatórios de Projeto
- R1 (Inicialização e Hardware): Configuração correta de clocks e registradores periféricos na inicialização.
- R2 (Não-Bloqueio): Proibido o uso de laços de espera bloqueantes (
delaycego) na rotina crítica de controle. - R3 (Tratamento de Exceções): Detecção de timeouts de hardware com sinalização via código de erro ou LED de diagnóstico.
- R4 (Modularidade): Código organizado em arquivos de cabeçalho (
.h) e implementação (.c).
🔌 3. Diagrama do Circuito & Conexões
graph LR
Fonte["⚡ Fonte 3.3V / 5V"] --> MCU["🧠 Microcontrolador (ESP32 / STM32)"]
Sensores["📡 Sensores / Sinais"] -->|GPIO / I2C / SPI| MCU
MCU -->|PWM / UART / CAN| Atuadores["⚙️ Atuador / Telemetria"]
style Fonte fill:#fff3e0,stroke:#e65100
style MCU fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style Sensores fill:#e8f5e9,stroke:#2e7d32
style Atuadores fill:#f3e5f5,stroke:#7b1fa2 💻 4. Esqueleto de Código de Partida
#include <stdint.h>
#include <stdbool.h>
void projeto_07_setup(void) {
// Inicialização de periféricos
}
void projeto_07_run(void) {
// Loop de controle com temporização via ticks
}
int main(void) {
projeto_07_setup();
while (1) {
projeto_07_run();
}
return 0;
}
📦 5. Critérios de Avaliação e Entrega
- Código-fonte compilando sem warnings com flag
-Wall. - Simulação validada no Wokwi ou gravação física em hardware de bancada.
- Relatório sucinto contendo diagrama de tempo e log de execução capturado via terminal serial.