#include <stdio.h>
#include "pico/stdlib.h"
#include <stdint.h>
// Função para acelerar ou desacelerar usando ponteiro
// O parâmetro 'variacao' pode ser positivo (acelerar) ou negativo (desacelerar)
void atualizar_velocidade(int16_t *p_atual, int16_t variacao) {
*p_atual += variacao;
// Garantir que a velocidade não seja negativa (segurança do sistema)
if (*p_atual < 0) {
*p_atual = 0;
}
}
// Sistema de alerta de excesso de velocidade
void verificar_limite(int16_t *p_atual, int16_t v_maxima) {
if (*p_atual > v_maxima) {
printf("!!! ALERTA: EXCESSO DE VELOCIDADE (%d km/h) !!!\n", *p_atual);
} else {
printf("Velocidade dentro do limite: %d km/h\n", *p_atual);
}
}
void main(void) {
stdio_init_all();
// 1. Velocidade atual (km/h) e Máxima permitida usando inteiros 16 bits
int16_t velocidade_veiculo = 80;
int16_t velocidade_limite = 100;
printf("Velocidade Inicial: %d km/h\n", velocidade_veiculo);
// 2. Simulação: Acelerar 30 km/h (80 + 30 = 110)
atualizar_velocidade(&velocidade_veiculo, 30);
// 3. Sistema de alerta de excesso de velocidade
verificar_limite(&velocidade_veiculo, velocidade_limite);
// 4. Simulação: Desacelerar 40 km/h (110 - 40 = 70)
atualizar_velocidade(&velocidade_veiculo, -50);
verificar_limite(&velocidade_veiculo, velocidade_limite);
}