aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/src/firmware.cpp
blob: a965b4cf1654fbd8365e3b8d6883d3d04d9fa5c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "pico/stdlib.h"

#include "debug.hpp"
#include "display.hpp"
#include "adc.hpp"
#include "midi.hpp"

void
update()
{
    const auto samples = adc::get_samples();
    for (auto const & sample : samples)
    {
        if (!sample.changed) continue;

        midi::send_message();
    }

    // update framebuffer
    display::render_framebuffer(samples[0].midi, samples[1].midi);

    // send frame to display
    display::display_update();

    debug::toggle_led();
}

[[noreturn]] int
main()
{
    debug::init();
    display::init();
    adc::init();
    midi::init();

    while (true)
    {
        update();
        sleep_ms(50);
    }
}