53 lines
1.1 KiB
C++
53 lines
1.1 KiB
C++
#include "macro.h"
|
|
#include "pico/stdlib.h"
|
|
#include <hardware/gpio.h>
|
|
#include <math.h>
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
#include <stdio.h>
|
|
#include "const.h"
|
|
#include "hardware/pwm.h"
|
|
#include "hardware/adc.h"
|
|
#include "state.h"
|
|
#include "daisysp.h"
|
|
|
|
state_t state;
|
|
|
|
void init_all() {
|
|
stdio_init_all();
|
|
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};
|
|
|
|
gpio_set_function(AUDIO_OUT, GPIO_FUNC_PWM);
|
|
|
|
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);
|
|
}
|
|
}
|
|
|
|
daisysp::Oscillator osc;
|
|
|
|
__attribute__((noreturn))
|
|
int main() {
|
|
init_all();
|
|
|
|
osc.Init(SAMPLE_RATE);
|
|
|
|
while (1) {
|
|
osc.SetFreq(state.vco_freq * 1760);
|
|
}
|
|
}
|