#include <stdio.h>
#include "pico/stdlib.h"
#include <stdint.h>
// Função para processar combustível e autonomia usando apenas inteiros
void processar_combustivel(uint16_t *p_nivel, uint16_t consumo, uint16_t *p_autonomia) {
// Cálculo de autonomia: Nível * Consumo (KM/L) [cite: 25]
*p_autonomia = (*p_nivel) * consumo;
}
// Função de monitoramento com sistema de alertas
void monitorar_combustivel(uint16_t *p_nivel, uint16_t cap_max) {
// Exibir alertas quando combustível < 10%
// Usamos a divisão por 10 para representar os 10% de forma inteira
if (*p_nivel < (cap_max / 10)) {
printf("!!! ALERTA: NIVEL CRITICO !!!\n");
printf("Combustivel abaixo de 10%%: %u L\n", *p_nivel);
} else {
printf("Nivel de combustivel: %u L\n", *p_nivel);
}
}
void main(void) {
stdio_init_all();
// Armazenar o nível atual (inteiro 16 bits)
uint16_t nivel_atual = 11;
uint16_t capacidade_total = 60;
// Consumo médio (inteiro) e Autonomia (inteiro) [cite: 24, 25]
uint8_t consumo_medio = 12;
uint16_t autonomia_restante = 0;
// Atualiza a autonomia usando ponteiros [cite: 25]
processar_combustivel(&nivel_atual, consumo_medio, &autonomia_restante);
// Monitora e exibe alertas
monitorar_combustivel(&nivel_atual, capacidade_total);
printf("Autonomia estimada: %u km\n", autonomia_restante);
}