aboutsummaryrefslogtreecommitdiff
path: root/qtmips_machine
diff options
context:
space:
mode:
Diffstat (limited to 'qtmips_machine')
-rw-r--r--qtmips_machine/peripspiled.cpp18
-rw-r--r--qtmips_machine/peripspiled.h4
2 files changed, 21 insertions, 1 deletions
diff --git a/qtmips_machine/peripspiled.cpp b/qtmips_machine/peripspiled.cpp
index 0404311..d016f90 100644
--- a/qtmips_machine/peripspiled.cpp
+++ b/qtmips_machine/peripspiled.cpp
@@ -137,3 +137,21 @@ void PeripSpiLed::blue_knob_update(int val) {
spiled_reg_knobs_8bit &= ~(0xff << 0);
spiled_reg_knobs_8bit |= (val & 0xff) << 0;
}
+
+void PeripSpiLed::red_knob_push(bool state) {
+ spiled_reg_knobs_8bit &= ~(1 << 26);
+ if (state)
+ spiled_reg_knobs_8bit |= 1 << 26;
+}
+
+void PeripSpiLed::green_knob_push(bool state) {
+ spiled_reg_knobs_8bit &= ~(1 << 25);
+ if (state)
+ spiled_reg_knobs_8bit |= 1 << 25;
+}
+
+void PeripSpiLed::blue_knob_push(bool state) {
+ spiled_reg_knobs_8bit &= ~(1 << 24);
+ if (state)
+ spiled_reg_knobs_8bit |= 1 << 24;
+}
diff --git a/qtmips_machine/peripspiled.h b/qtmips_machine/peripspiled.h
index 2e2be72..8c884e3 100644
--- a/qtmips_machine/peripspiled.h
+++ b/qtmips_machine/peripspiled.h
@@ -63,7 +63,9 @@ public slots:
void red_knob_update(int val);
void green_knob_update(int val);
void blue_knob_update(int val);
-
+ void red_knob_push(bool state);
+ void green_knob_push(bool state);
+ void blue_knob_push(bool state);
public:
bool wword(std::uint32_t address, std::uint32_t value);
std::uint32_t rword(std::uint32_t address, bool debug_access = false) const;