Mercurial > ~darius > hgwebdir.cgi > modulator
diff modulator.c @ 0:a55e39064a71
First commit of code that compiles.
Does nothing like it should but has cmake goo to wrap dat files
author | Daniel O'Connor <darius@dons.net.au> |
---|---|
date | Mon, 29 Mar 2021 13:48:34 +1030 |
parents | |
children | 0d653f60dec8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modulator.c Mon Mar 29 13:48:34 2021 +1030 @@ -0,0 +1,65 @@ +/****************************************************************** +******************************************************************* +** +** This is proprietary unpublished source code, property +** of Genesis Software. Use or disclosure without prior +** agreement is expressly prohibited. +** +** Copyright (c) 2021 Genesis Software, all rights reserved. +** +******************************************************************* + ******************************************************************/ + +/* +** MODULATOR.C +** +** Create modulation shape +** +*/ + +#include "pico/stdlib.h" +#include "hardware/clocks.h" +#include "hardware/pio.h" + +#include "dac.pio.h" + +extern void* shaped_trap_dat_size; +extern void* shaped_trap_dat_start; + +extern void* sgauss_dat_size; +extern void* sgauss_dat_start; + +int +main() { + int i; + const uint LED_PIN = PICO_DEFAULT_LED_PIN; + + stdio_init_all(); + + gpio_init(LED_PIN); + gpio_set_dir(LED_PIN, GPIO_OUT); + + // Load the clocked_input program, and configure a free state machine + // to run the program. + PIO pio = pio0; + uint offset = pio_add_program(pio, &dac_program); + uint sm = pio_claim_unused_sm(pio, true); + dac_program_init(pio, sm, offset, 4); + + while (true) { + for (i = 0; i < (int)&shaped_trap_dat_size; i++) { + if (*(uint8_t *)shaped_trap_dat_start) + gpio_put(LED_PIN, 1); + else + gpio_put(LED_PIN, 0); + sleep_ms(250); + } + for (i = 0; i < (int)&sgauss_dat_size; i++) { + if (*(uint8_t *)sgauss_dat_start) + gpio_put(LED_PIN, 1); + else + gpio_put(LED_PIN, 0); + sleep_ms(250); + } + } +}