User interface - Online Offline LED and speaker
This commit is contained in:
parent
c64f2e44fa
commit
eadfe70f1d
@ -5,6 +5,9 @@
|
|||||||
#include <TimerOne.h>
|
#include <TimerOne.h>
|
||||||
|
|
||||||
// pinout config
|
// pinout config
|
||||||
|
const int pinLedOffline = 10; // out
|
||||||
|
const int pinLedOnline = 9; // out
|
||||||
|
const int pinSpeaker = 8; // out
|
||||||
const int pinData = 6; // out, host data
|
const int pinData = 6; // out, host data
|
||||||
const int pinStatus = 7; // in, host status
|
const int pinStatus = 7; // in, host status
|
||||||
const int clockPin = 5; // out, kbd clock
|
const int clockPin = 5; // out, kbd clock
|
||||||
@ -22,6 +25,7 @@ volatile int data = 0;
|
|||||||
int test = 0;
|
int test = 0;
|
||||||
volatile int counter = 0;
|
volatile int counter = 0;
|
||||||
int numbits = 10;
|
int numbits = 10;
|
||||||
|
volatile int typedKey = -1;
|
||||||
|
|
||||||
// MODS >>>
|
// MODS >>>
|
||||||
// [1] send debug scancode information to serial port
|
// [1] send debug scancode information to serial port
|
||||||
@ -31,7 +35,7 @@ bool modConsoleLog = true;
|
|||||||
// ----------
|
// ----------
|
||||||
// KBD Output
|
// KBD Output
|
||||||
// ----------
|
// ----------
|
||||||
volatile long lastChange = 0;
|
volatile long lastChange = -100000;
|
||||||
volatile int x = 0;
|
volatile int x = 0;
|
||||||
volatile int dataWord = 0;
|
volatile int dataWord = 0;
|
||||||
volatile int dataState = 0;
|
volatile int dataState = 0;
|
||||||
@ -54,6 +58,7 @@ void sendKey(byte key) {
|
|||||||
dataDelay = 0;
|
dataDelay = 0;
|
||||||
packetDelay = 0;
|
packetDelay = 0;
|
||||||
packetTail = 15;
|
packetTail = 15;
|
||||||
|
typedKey = key;
|
||||||
//Serial.print("Sending key "); Serial.println((int) key);
|
//Serial.print("Sending key "); Serial.println((int) key);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -365,6 +370,17 @@ void onTimerInterrupt()
|
|||||||
slaveClockStep = (slaveClockStep + 1) % slaveClockDivider;
|
slaveClockStep = (slaveClockStep + 1) % slaveClockDivider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------
|
||||||
|
// User Interface
|
||||||
|
// --------------
|
||||||
|
void updateOnlineLeds()
|
||||||
|
{
|
||||||
|
long timeNow = millis();
|
||||||
|
bool online = (lastChange > timeNow) || ((timeNow - lastChange) < 10000);
|
||||||
|
digitalWrite(pinLedOffline, online ? LOW : HIGH);
|
||||||
|
digitalWrite(pinLedOnline, online ? HIGH : LOW);
|
||||||
|
}
|
||||||
|
|
||||||
// ----
|
// ----
|
||||||
// Main
|
// Main
|
||||||
// ----
|
// ----
|
||||||
@ -374,12 +390,17 @@ void setup(void)
|
|||||||
|
|
||||||
setupKeyMapping();
|
setupKeyMapping();
|
||||||
|
|
||||||
|
pinMode(pinLedOffline, OUTPUT);
|
||||||
|
pinMode(pinLedOnline, OUTPUT);
|
||||||
|
pinMode(pinSpeaker, OUTPUT);
|
||||||
pinMode(pinData, OUTPUT);
|
pinMode(pinData, OUTPUT);
|
||||||
pinMode(dataPin, INPUT);
|
pinMode(dataPin, INPUT);
|
||||||
pinMode(outPin, OUTPUT);
|
pinMode(outPin, OUTPUT);
|
||||||
pinMode(clockPin, OUTPUT);
|
pinMode(clockPin, OUTPUT);
|
||||||
pinMode(pinStatus, INPUT_PULLUP);
|
pinMode(pinStatus, INPUT_PULLUP);
|
||||||
|
|
||||||
|
digitalWrite(pinLedOffline, HIGH);
|
||||||
|
digitalWrite(pinLedOnline, HIGH);
|
||||||
digitalWrite(pinData, HIGH);
|
digitalWrite(pinData, HIGH);
|
||||||
digitalWrite(outPin, LOW);
|
digitalWrite(outPin, LOW);
|
||||||
|
|
||||||
@ -388,6 +409,23 @@ void setup(void)
|
|||||||
Timer1.initialize(timerDelay);
|
Timer1.initialize(timerDelay);
|
||||||
Timer1.attachInterrupt(onTimerInterrupt);
|
Timer1.attachInterrupt(onTimerInterrupt);
|
||||||
|
|
||||||
|
delay(500);
|
||||||
|
tone(pinSpeaker, 650, 200);
|
||||||
|
digitalWrite(pinLedOffline, LOW);
|
||||||
|
digitalWrite(pinLedOnline, HIGH);
|
||||||
|
delay(200);
|
||||||
|
tone(pinSpeaker, 500, 200);
|
||||||
|
digitalWrite(pinLedOffline, HIGH);
|
||||||
|
digitalWrite(pinLedOnline, LOW);
|
||||||
|
delay(200);
|
||||||
|
digitalWrite(pinLedOffline, LOW);
|
||||||
|
digitalWrite(pinLedOnline, LOW);
|
||||||
|
delay(500);
|
||||||
|
|
||||||
|
updateOnlineLeds();
|
||||||
|
tone(pinSpeaker, 440, 200);
|
||||||
|
delay(200);
|
||||||
|
|
||||||
Serial.println("Keyboard ready");
|
Serial.println("Keyboard ready");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -419,5 +457,13 @@ void loop(void)
|
|||||||
Serial.print("QWE "); Serial.println((int)k);
|
Serial.print("QWE "); Serial.println((int)k);
|
||||||
if (qwe % 5 == 0) delay(2000);
|
if (qwe % 5 == 0) delay(2000);
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
|
updateOnlineLeds();
|
||||||
|
if (typedKey != -1) {
|
||||||
|
tone(pinSpeaker, 200 + typedKey, 100);
|
||||||
|
typedKey = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
delay(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user