summaryrefslogtreecommitdiff
path: root/eeg.ino
diff options
context:
space:
mode:
Diffstat (limited to 'eeg.ino')
-rw-r--r--eeg.ino34
1 files 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);
}