From e1af117ddbe0aedae7810b0dcd9b0d3a142b40ca Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 30 Apr 2016 18:39:28 +0100 Subject: now we even get a proper status! --- eeg.ino | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/eeg.ino b/eeg.ino index d8af88b..a7b928a 100644 --- a/eeg.ino +++ b/eeg.ino @@ -73,22 +73,33 @@ class Keepon { } void check_state() { - int r = analogRead(0); - int t = millis() - last_time; - if (r <= 512) { + int v; + if ((v=analogRead(0)) <= 512) { digitalWrite(SDA, LOW); digitalWrite(SCL, LOW); - set_state(WAITING,r); + current_state = WAITING; } else if (current_state == WAITING) { last_time = millis(); - set_state(MASTERING,0); + digitalWrite(SDA, LOW); + digitalWrite(SCL, LOW); + current_state = MASTERING; + v=0; + } + else if (current_state == MASTERING && (v=millis()-last_time) < 1000) { + v/=100; } - else if (current_state == MASTERING && t > 1000) { + else if (current_state == MASTERING) { Wire.begin(); TWBR = ((F_CPU / MK_FREQ) - 16) / 2; - set_state(READY,t/10); + current_state = READY; + v = queue.length(); } + else if (current_state == READY) { + v = queue.length(); + } + + display_callback(current_state,v); } public: @@ -150,17 +161,18 @@ class Keepon { Brain brain(Serial); void kscan_callback(Keepon::State s, int n) { + uView.setCursor(25,0); if (s == Keepon::WAITING) { - uView.setCursor(25,0);uView.print("K?"); + uView.print("K?"); } else if (s == Keepon::MASTERING){ - uView.setCursor(25,0);uView.print("K.."); + uView.print("K.."); } else if (s == Keepon::READY){ - uView.setCursor(25,0);uView.print("K!"); + uView.print("K!"); } else if (s == Keepon::QFULL){ - uView.setCursor(25,0);uView.print("KO"); + uView.print("KO"); } uView.setCursor(40,0);uView.print(n); } -- cgit v1.2.3