Added state processing stage

This commit is contained in:
2026-04-27 12:11:41 +02:00
parent 1fd0a56064
commit 787bf50957
8 changed files with 57 additions and 44 deletions
+10 -8
View File
@@ -2,8 +2,9 @@
#include <hardware/gpio.h>
#include <pico/stdlib.h>
#include <pico/time.h>
#include <stdint.h>
#include <sys/types.h>
#include <stdint.h>
#include <math.h>
#include "const.h"
@@ -20,13 +21,14 @@ void set_mux_addr(uint8_t addr) {
void update_inputs(input_t* input) {
// Pots
for (uint8_t i = 0; i < 8; i++) {
set_mux_addr(i);
for (uint8_t j = 0; j < 2; j++) {
adc_select_input(j);
sleep_us(20); // Let multiplexers multiplex
uint16_t val = adc_read();
if (val > 5) input->pots[i + j * 8] = (float)val;
for (uint8_t j = 0; j < 2; j++) {
adc_select_input(j);
for (uint8_t i = 0; i < 8; i++) {
set_mux_addr(i);
sleep_us(50); // Let multiplexers multiplex
float old_val = input->buttons[i + j * 8];
float new_val = (float)adc_read() / 4096.0f;
if (fabs(new_val - old_val) >= 0.01f) input->pots[i + j * 8] = new_val;
}
}