Added state processing stage
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user