Browse Source

Merge branch 'hardware_test'

usb_midi_launchpad
heck 7 months ago
parent
commit
fc40aa027d
  1. 27
      Makefile.conf
  2. 21
      build.conf.example
  3. 31
      src/Makefile
  4. 33
      src/main_blink.cc
  5. 77
      src/main_testtone.cc
  6. 34
      src/types.hh

27
Makefile.conf

@ -1,27 +0,0 @@
HERE:=$(dir $(lastword $(MAKEFILE_LIST)))
-include $(HERE)build.conf
# Project Name
TARGET?=blink
# Configure for debugging
# common configurations:
# use DEBUG = 1 and OPT = -Og for debugging
# or DEBUG = 0 and OPT = -O3 for performance
DEBUG?=0
OPT?=-O3
# (optional) Includes FatFS source files within project.
#USE_FATFS = 1
# Relative to dir 'src'
LIBDAISY_DIR?=../../heck_libDaisy
DAISYSP_DIR?=../../heck_DaisySP
CXXFLAGS+=-Wall -Wno-unused -Wno-reorder-ctor -Wno-switch
ifneq (,$(findstring g++,$(CXX)))
CXXFLAGS+=-fdiagnostics-color=always
else ifneq (,$(findstring clang,$(CXX)))
CXXFLAGS+=-fcolor-diagnostics
endif

21
build.conf.example

@ -1,13 +1,14 @@
# Build config
# also, infos for the build system about the dev environment
# Dev environment build config
# This is a template, make a local copy called 'build.conf',
# remove this line, and tweak the values as you develop
# TARGET sets the program to compile and flash
# the name of the main cxx file without the prefix 'main_'
TARGET?=blink
#TARGET?=testtone
# The program to compile and flash
# the name of the main cxx file without the suffix
DEBUG?=0
TARGET ?= main_blink
DEBUG ?= 0
# dependencies relative to dir 'src'
LIBDAISY_DIR ?= ../../heck_libDaisy
DAISYSP_DIR ?= ../../heck_DaisySP
# Daisy dependencies relative to dir 'src'
LIBDAISY_DIR?=../../heck_libDaisy
DAISYSP_DIR?=../../heck_DaisySP

31
src/Makefile

@ -1,19 +1,20 @@
include ../Makefile.conf
HERE:=$(dir $(lastword $(MAKEFILE_LIST)))
-include $(HERE)../build.conf
ALL_SRC=$(wildcard *.cc)
TARGET_SRC=main_$(TARGET).cc
MODULES_SRC=$(filter-out main_%,$(ALL_SRC))
CXX_SRC=$(MODULES_SRC) $(TARGET_SRC)
TARGET ?= main_blink
DEBUG ?= 0
LIBDAISY_DIR ?= ../../heck_libDaisy
DAISYSP_DIR ?= ../../heck_DaisySP
$(info CXXFLAGS: $(CXXFLAGS))
$(info SOURCES: $(ALL_SRC))
$(info MODULES: $(MODULES_SRC))
$(info TARGET_SRC: $(TARGET_SRC))
$(info CXX_SRC: $(CXX_SRC))
CXX_STANDARD ?= -std=c++17
CXXFLAGS += -Wall -Wno-unused -Wno-reorder-ctor -Wno-switch
CXXFLAGS += -fdiagnostics-color=always
# libDaisy Makefile variables
CPPFLAGS=$(CXXFLAGS)
SYSTEM_FILES_DIR=$(LIBDAISY_DIR)/core
CPP_SOURCES=$(CXX_SRC)
ALL_SRC = $(wildcard *.cc)
TARGET_SRC = $(TARGET).cc
MODULES_SRC = $(filter-out main_%,$(ALL_SRC))
CXX_SRC = $(MODULES_SRC) $(TARGET_SRC)
include $(SYSTEM_FILES_DIR)/Makefile
CXX_SOURCES = $(CXX_SRC)
include $(LIBDAISY_DIR)/core/Makefile

33
src/main_blink.cc

@ -1,16 +1,31 @@
#include "daisy_seed.h"
#include "types.hh"
namespace ld = daisy;
namespace Heck {
namespace Constants {
constexpr float BLINK_FREQ_HZ{ 1 };
}
ld::DaisySeed hw{};
float hz_to_ms(float hz)
{
return 1000. / hz;
}
static ld::DaisySeed hw{};
int main()
{
hw.Init();
while (true) {
hw.SetLed(true);
hw.DelayMs(hz_to_ms(Constants::BLINK_FREQ_HZ * 2));
hw.SetLed(false);
hw.DelayMs(hz_to_ms(Constants::BLINK_FREQ_HZ * 2));
}
}
} // namespace Heck
int main()
{
hw.Init();
while (true) {
hw.SetLed(true);
hw.DelayMs(100);
hw.SetLed(false);
hw.DelayMs(100);
}
return Heck::main();
}

77
src/main_testtone.cc

@ -1,43 +1,54 @@
#include "daisy_seed.h"
#include "daisysp.h"
#include "types.hh"
namespace ld = daisy;
namespace dsp = daisysp;
static ld::DaisySeed hardware;
static dsp::Oscillator osc;
namespace Heck {
namespace Constants {
}
void AudioCallback(
ld::AudioHandle::InterleavingInputBuffer in,
ld::AudioHandle::InterleavingOutputBuffer out,
size_t size)
{
float osc_out;
osc.SetFreq(1000);
for (size_t i = 0; i < size; i += 2) {
osc.SetAmp(1.0);
osc_out = osc.Process();
osc_out *= 0.01;
out[i] = osc_out;
out[i + 1] = osc_out;
ld::DaisySeed hw{};
dsp::Oscillator osc{};
void AudioCallback(
ld::AudioHandle::InterleavingInputBuffer in,
ld::AudioHandle::InterleavingOutputBuffer out,
size_t size)
{
float osc_out;
osc.SetFreq(1000);
for (size_t i = 0; i < size; i += 2) {
osc.SetAmp(1.0);
osc_out = osc.Process();
osc_out *= 0.005;
out[i] = osc_out;
out[i + 1] = osc_out;
}
}
}
void init()
{
hw.Configure();
hw.Init();
hw.SetAudioBlockSize(4);
float samplerate = hw.AudioSampleRate();
int main(void)
{
hardware.Configure();
hardware.Init();
hardware.SetAudioBlockSize(4);
osc.Init(samplerate);
osc.SetWaveform(osc.WAVE_SIN);
osc.SetAmp(1.f);
osc.SetFreq(1000);
float samplerate = hardware.AudioSampleRate();
hw.StartAudio(AudioCallback);
}
osc.Init(samplerate);
osc.SetWaveform(osc.WAVE_SIN);
osc.SetAmp(1.f);
osc.SetFreq(1000);
void mainloop()
{
for (;;) {}
}
} // namespace Heck
hardware.StartAudio(AudioCallback);
while (true) {}
int main(void)
{
Heck::init();
Heck::mainloop();
return 0;
}

34
src/types.hh

@ -0,0 +1,34 @@
#ifndef HECK_DAISY_TYPES_HH
#define HECK_DAISY_TYPES_HH
#include <cstdint>
#include "daisy_seed.h"
#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 aliases
namespace ld = daisy;
namespace dsp = daisysp;
// type aliases from libs
using Samplerate = ld::SaiHandle::Config::SampleRate;
} // namespace Heck
#endif
Loading…
Cancel
Save