Bela
Real-time, ultra-low-latency audio and sensor processing system for BeagleBone Black
Loading...
Searching...
No Matches
ShiftRegister.h
1#pragma once
2#include <Bela.h> // this class acts on the BelaContext directly
3#include <vector>
4
14{
15public:
19 struct Pins {
20 unsigned int data;
21 unsigned int clock;
22 unsigned int latch;
23 };
24
37 ShiftRegister(const Pins& pins, unsigned int maxSize);
41 void setup(const Pins& pins, unsigned int maxSize);
50 bool dataReady();
54 virtual void process(BelaContext* context, unsigned int n) = 0;
55protected:
56 Pins pins;
57 typedef enum {
58 kStart,
59 kTransmitting,
60 kStop,
61 kIdle,
62 } State;
63
64 State state = kStop;
65 std::vector<bool> data;
66 bool pinModeSet = false;
67 bool notified = true;
68};
69
71{
72public:
77 void setClockPeriod(unsigned int period);
87 void setData(const std::vector<bool>& dataBuf);
93 void setData(const bool* dataBuf, unsigned int length);
97 void process(BelaContext* context);
98 void process(BelaContext* context, unsigned int n) override;
99private:
100 unsigned int period = 2;
101 unsigned int currentDataFrame;
102 unsigned int currentStopFrame;
103};
104
106{
107public:
123 const std::vector<bool>& getData();
124 void process(BelaContext* context, unsigned int n) override;
125private:
126 bool pastLatch = false;
127 bool pastClock = false;
128};
Main Bela public API.
Definition ShiftRegister.h:106
const std::vector< bool > & getData()
Definition ShiftRegister.cpp:105
void process(BelaContext *context, unsigned int n) override
Definition ShiftRegister.cpp:110
Definition ShiftRegister.h:71
void setClockPeriod(unsigned int period)
Definition ShiftRegister.cpp:22
void setData(const std::vector< bool > &dataBuf)
Definition ShiftRegister.cpp:89
void process(BelaContext *context)
Definition ShiftRegister.cpp:29
ShiftRegister()
Definition ShiftRegister.cpp:3
bool dataReady()
Definition ShiftRegister.cpp:15
virtual void process(BelaContext *context, unsigned int n)=0
void setup(const Pins &pins, unsigned int maxSize)
Definition ShiftRegister.cpp:9
Structure holding audio and sensor settings and pointers to I/O data buffers.
Definition Bela.h:231
Definition ShiftRegister.h:19
unsigned int clock
clock pin
Definition ShiftRegister.h:21
unsigned int data
data pin
Definition ShiftRegister.h:20
unsigned int latch
latch pin
Definition ShiftRegister.h:22