Compare commits

...

5 Commits

  1. 2
      Makefile.conf
  2. 26
      examples/Makefile
  3. 25
      examples/main_adc.cc
  4. 37
      examples/main_density.cc
  5. 32
      src/types.hh

2
Makefile.conf

@ -17,4 +17,4 @@ CXXFLAGS += \
-fdiagnostics-show-template-tree \ -fdiagnostics-show-template-tree \
#APP_TYPE ?= BOOT_NONE #APP_TYPE ?= BOOT_NONE
#LDFLAGS += -u_printf_float LDFLAGS += -u_printf_float

26
examples/Makefile

@ -11,19 +11,21 @@ LDFLAGS += -L$(LIBDIZZY_DIR)
LDFLAGS += -ldizzy LDFLAGS += -ldizzy
SRC_EXCLUDED := \ SRC_EXCLUDED := \
main_minimal.c \ main_adc_direct.cc \
main_memtest1.cc \
main_adc.cc \
main_blink.cc \
main_cli.cc \
main_density.cc \
main_framework_proto1.cc \
main_framework_proto2.cc \
main_memtest1.cc \ main_memtest1.cc \
main_minimal.cc \ main_minimal.c \
main_template_full.cc \ main_cpuload.cc
main_testtone.cc \ # main_adc.cc \
main_usbhost.cc \ # main_blink.cc \
# main_cli.cc \
# main_density.cc \
# main_framework_proto1.cc \
# main_framework_proto2.cc \
# main_memtest1.cc \
# main_minimal.cc \
# main_template_full.cc \
# main_testtone.cc \
# main_usbhost.cc \
SOURCES := $(wildcard *) SOURCES := $(wildcard *)

25
examples/main_adc.cc

@ -1,12 +1,18 @@
#include "main_adc.hh" #include "main_adc.hh"
#include "utils.hh" #include "utils.hh"
#include <functional>
namespace Heck { namespace Heck {
namespace { // anonymous namespace for internal linkage namespace { // anonymous namespace for internal linkage
ld::DaisySeed seed{}; ld::DaisySeed seed{};
Observer<int> pot1{};
SWTimer scan_pots{}; Cache<u16> pot1{ []() { return seed.adc.Get(0); },
[](Cache<u16>& cache) { seed.PrintLine("POT_1: %d", cache.read()); } };
void scan_pots(u32) {
pot1.update_and_notify_change();
}
PeriodicTaskCT<scan_pots, 10> task_scan_pots{};
void init() void init()
{ {
@ -20,21 +26,14 @@ namespace Heck {
seed.adc.Init(adc_cfg, 1); seed.adc.Init(adc_cfg, 1);
seed.adc.Start(); seed.adc.Start();
} }
scan_pots.set_period(10);
scan_pots.set_callback([](u32) {
pot1.on_change_fuzzy(seed.adc.Get(0), 20, [](int val) {
seed.PrintLine("POT_1: %d", val);
});
});
} }
void mainloop() void mainloop()
{ {
u32&& time_boot_ms{}; u32 uptime{};
while (true) { while (true) {
time_boot_ms = ld::System::GetNow(); uptime = ld::System::GetNow();
scan_pots.is_it_already_time_again(time_boot_ms); task_scan_pots.run_pending(uptime);
} }
} }
} // namespace } // namespace

37
examples/main_density.cc

@ -78,32 +78,15 @@ namespace Heck {
float sig{}; float sig{};
float sig2{}; float sig2{};
float sig3{}; float sig3{};
// sum to dual mono for (size_t i = 0; i < size; i++) {
// for (size_t i = 0; i == 0; i++) { sig = in[0][i];
// sig = in[0][i]; sig += in[1][i];
// sig += in[1][i];
density.process(&sig, &sig2, 1);
// sig2 = sig;
density.process(in[0], out[0], size); out[0][i] = sig2;
out[1][i] = sig2;
// sig *= pots_value }
// out[0][i] = sig3;
// out[1][i] = sig3;
// }
// Channel 1
// float sig_out{};
// // sum to dual mono
// for (size_t i = 0; i < size; i++) {
// sig_out = in[0][i];
// sig_out += in[1][i];
//
// sig_out *= pot1_value;
//
// out[0][i] = sig_out;
// out[1][i] = sig_out;
// }
} }
@ -141,7 +124,7 @@ namespace Heck {
scan_pots.set_callback([](u32 time_now) { scan_pots.set_callback([](u32 time_now) {
pot1.on_change_fuzzy(seed.adc.Get(0), 10, [](int val) { pot1.on_change_fuzzy(seed.adc.Get(0), 10, [](int val) {
pots_value[0] = float(val) / (float)std::numeric_limits<u16>::max(); pots_value[0] = float(val) / (float)std::numeric_limits<u16>::max();
density.params[0] = (pots_value[0] * 5.f) - 1.f; density.params[0] = (pots_value[0] * 5.f) - 1.f;
seed.PrintLine("POT_0: %d", (int)(pots_value[0] * 100.)); seed.PrintLine("POT_0: %d", (int)(pots_value[0] * 100.));
}); });
pot2.on_change_fuzzy(seed.adc.Get(1), 10, [](int val) { pot2.on_change_fuzzy(seed.adc.Get(1), 10, [](int val) {

32
src/types.hh

@ -6,21 +6,23 @@
#include "daisysp.h" #include "daisysp.h"
namespace Heck { namespace Heck {
namespace Types {
// fundamental types // fundamental types
using u8 = uint8_t; using u8 = uint8_t;
using u16 = uint16_t; using u16 = uint16_t;
using u32 = uint32_t; using u32 = uint32_t;
using u64 = uint64_t; using u64 = uint64_t;
using i8 = int8_t; using i8 = int8_t;
using i16 = int16_t; using i16 = int16_t;
using i32 = int32_t; using i32 = int32_t;
using i64 = int64_t; using i64 = int64_t;
using f32 = float; using f32 = float;
using f64 = double; using f64 = double;
}
using namespace Types;
// namespace aliases // namespace aliases
namespace ld = daisy; namespace ld = daisy;
namespace dsp = daisysp; namespace dsp = daisysp;

Loading…
Cancel
Save