Combined mux.c and buttons.c to input.c
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
#include <hardware/irq.h>
|
||||
#include <pico/stdio.h>
|
||||
#include <pico/time.h>
|
||||
#include <stdnoreturn.h>
|
||||
#include <sys/types.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
@@ -10,44 +12,17 @@
|
||||
#include "pico/multicore.h"
|
||||
#include "pico/stdlib.h"
|
||||
|
||||
#include "buttons.h"
|
||||
#include "synth.h"
|
||||
#include "const.h"
|
||||
#include "macro.h"
|
||||
#include "input.h"
|
||||
#include "state.h"
|
||||
#include "synth.h"
|
||||
#include "pwm.h"
|
||||
#include "mux.h"
|
||||
|
||||
input_t input;
|
||||
state_t state;
|
||||
|
||||
void init_all() {
|
||||
stdio_init_all();
|
||||
|
||||
sleep_ms(2000);
|
||||
|
||||
puts("Starting PIN initialization");
|
||||
const uint8_t out_gpio[] = {MUX_S0,MUX_S1,MUX_S2, STATUS_LED};
|
||||
const uint8_t in_gpio[] = {VCO_BUTTON,QUANT_BUTTON,AMEN_BUTTON};
|
||||
const uint8_t adc_gpio[] = {MUX0,MUX1};
|
||||
|
||||
for (uint8_t i=0; i < ARRAY_LENGTH(out_gpio); i++) {
|
||||
gpio_init(out_gpio[i]);
|
||||
gpio_set_dir(out_gpio[i], true);
|
||||
}
|
||||
|
||||
for (uint8_t i=0; i < ARRAY_LENGTH(in_gpio); i++) {
|
||||
gpio_init(in_gpio[i]);
|
||||
gpio_set_dir(in_gpio[i], false);
|
||||
}
|
||||
adc_init();
|
||||
for (uint8_t i=0; i < ARRAY_LENGTH(adc_gpio); i++) {
|
||||
adc_gpio_init(adc_gpio[i]);
|
||||
adc_select_input(i);
|
||||
}
|
||||
|
||||
// Synth
|
||||
synth_init();
|
||||
|
||||
void core0_init(void) {
|
||||
// PWM bullshit
|
||||
gpio_set_function(AUDIO_OUT, GPIO_FUNC_PWM);
|
||||
|
||||
@@ -61,22 +36,63 @@ void init_all() {
|
||||
irq_set_exclusive_handler(PWM_IRQ_WRAP, pwm_isr);
|
||||
irq_set_enabled(PWM_IRQ_WRAP, true);
|
||||
|
||||
puts("PWM Initialized.");
|
||||
|
||||
// Synth
|
||||
synth_init();
|
||||
puts("Synth Initialized.");
|
||||
}
|
||||
|
||||
__attribute__((noreturn))
|
||||
void core1_main(void) {
|
||||
void core1_init(void) {
|
||||
// GPIO
|
||||
const uint8_t out_gpio[] = { MUX_S0, MUX_S1, MUX_S2, STATUS_LED };
|
||||
const uint8_t adc_gpio[] = {MUX0,MUX1};
|
||||
|
||||
for (uint8_t i = 0; i < ARRAY_LENGTH(out_gpio); i++) {
|
||||
gpio_init(out_gpio[i]);
|
||||
gpio_set_dir(out_gpio[i], true);
|
||||
}
|
||||
|
||||
for (uint8_t i = 0; i < BUTTON_COUNT; i++) {
|
||||
gpio_init(BUTTON_BASE + i);
|
||||
gpio_set_dir(BUTTON_BASE + 1, false);
|
||||
}
|
||||
|
||||
adc_init();
|
||||
adc_gpio_init(MUX0);
|
||||
adc_gpio_init(MUX1);
|
||||
|
||||
puts("GPIO Initialized.");
|
||||
|
||||
// Input
|
||||
set_toggle_button(0, true);
|
||||
set_toggle_button(1, false);
|
||||
set_toggle_button(2, true);
|
||||
}
|
||||
|
||||
noreturn void core1_loop(void) {
|
||||
while (1) {
|
||||
update_buttons();
|
||||
update_inputs();
|
||||
printf("Sample: %f\n", state.dbg_sample);
|
||||
update_inputs(&input);
|
||||
printf("%d %f\n", input.buttons[0], input.pots[0]);
|
||||
printf("%d\n", input.buttons[1]);
|
||||
printf("%d\n", input.buttons[2]);
|
||||
printf("%d\n", input.buttons[3]);
|
||||
sleep_ms(1);
|
||||
}
|
||||
}
|
||||
|
||||
__attribute__((noreturn))
|
||||
int main() {
|
||||
init_all();
|
||||
multicore_launch_core1(core1_main);
|
||||
while (1);
|
||||
noreturn void core0_loop(void) {
|
||||
while (1) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
stdio_init_all();
|
||||
core0_init();
|
||||
core1_init();
|
||||
|
||||
multicore_launch_core1(core1_loop);
|
||||
core0_loop();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user