RISC-V/V203F6P6/disco/spectrum.h
2025-02-11 14:22:40 +01:00

24 lines
807 B
C++

#ifndef SPECTRUM_H
#define SPECTRUM_H
#include "oneway.h"
#include "gpio.h"
#include "fifo.h"
#include "fft.h"
/**
*/
class Spectrum : public OneWay<uint16_t> {
static constexpr unsigned FFTSIZE = 1 << FFTORDER;
GpioClass & led;
FIFO<uint32_t, FIFOLEN> & ring;
const unsigned bhigh, bmiddle, blow;
uint8_t cred, cgreen, cblue;
const IFFT ifft;
complex buffer [FFTSIZE];
public:
explicit Spectrum (FIFO<uint32_t, FIFOLEN> & ff, GpioClass & io) noexcept : OneWay<uint16_t>(), led(io), ring(ff),
bhigh (FFTSIZE >> 1), bmiddle(bhigh >> 1), blow (bmiddle >> 4), cred(0u), cgreen(0u), cblue(0u), ifft() {}
unsigned int Send(uint16_t * const ptr, const unsigned int len) override;
};
#endif // SPECTRUM_H