#include "radio.h"
#include "display.h"
#include "Control.cpp"
#include "Setting.cpp"
#define CLK 25
#define DT 26
#define SW 27
DisplayComponent::Manager displayManager;
RotaryEncoder encoder = RotaryEncoder(DT, CLK, RotaryEncoder::LatchMode::TWO03);
Control control = Control(&encoder);
Setting setting(&control);
RadioTransmitter radio;
void processRotate(bool CW) {
Serial.print(CW);
setting.processRotate(!CW);
}
void processBtn() {
Serial.println("Btn triggered.");
setting.processBtn();
};
void checkPosition()
{
control.encoder->tick(); // just call tick() to check the state.
}
void setup() {
Serial.begin(9600);
displayManager.main.bindRadio(&radio);
displayManager.setting.bindSetting(&setting);
displayManager.init();
control.init();
control.bindRotateCallback(processRotate);
control.bindBtnCallback(processBtn);
// register interrupt routine
attachInterrupt(digitalPinToInterrupt(CLK), checkPosition, FALLING);
attachInterrupt(digitalPinToInterrupt(DT), checkPosition, FALLING);
delay(1000);
}
void loop() {
control.update();
displayManager.update();
}