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 \
#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
SRC_EXCLUDED := \
main_minimal.c \
main_memtest1.cc \
main_adc.cc \
main_blink.cc \
main_cli.cc \
main_density.cc \
main_framework_proto1.cc \
main_framework_proto2.cc \
main_adc_direct.cc \
main_memtest1.cc \
main_minimal.cc \
main_template_full.cc \
main_testtone.cc \
main_usbhost.cc \
main_minimal.c \
main_cpuload.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_minimal.cc \
# main_template_full.cc \
# main_testtone.cc \
# main_usbhost.cc \
SOURCES := $(wildcard *)

25
examples/main_adc.cc

@ -1,12 +1,18 @@
#include "main_adc.hh"
#include "utils.hh"
#include <functional>
namespace Heck {
namespace { // anonymous namespace for internal linkage
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()
{
@ -20,21 +26,14 @@ namespace Heck {
seed.adc.Init(adc_cfg, 1);
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()
{
u32&& time_boot_ms{};
u32 uptime{};
while (true) {
time_boot_ms = ld::System::GetNow();
scan_pots.is_it_already_time_again(time_boot_ms);
uptime = ld::System::GetNow();
task_scan_pots.run_pending(uptime);
}
}
} // namespace

37
examples/main_density.cc

@ -78,32 +78,15 @@ namespace Heck {
float sig{};
float sig2{};
float sig3{};
// sum to dual mono
// for (size_t i = 0; i == 0; i++) {
// sig = in[0][i];
// sig += in[1][i];
// sig2 = sig;
density.process(in[0], out[0], size);
// 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;
// }
for (size_t i = 0; i < size; i++) {
sig = in[0][i];
sig += in[1][i];
density.process(&sig, &sig2, 1);
out[0][i] = sig2;
out[1][i] = sig2;
}
}
@ -141,7 +124,7 @@ namespace Heck {
scan_pots.set_callback([](u32 time_now) {
pot1.on_change_fuzzy(seed.adc.Get(0), 10, [](int val) {
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.));
});
pot2.on_change_fuzzy(seed.adc.Get(1), 10, [](int val) {

32
src/types.hh

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

Loading…
Cancel
Save