improve clicking behavior - no delay()

This commit is contained in:
2020-03-08 22:48:38 -07:00
parent b8bb3dd778
commit 6eb4f9da4d

View File

@ -20,10 +20,7 @@ Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
#define WHITE 0x7 #define WHITE 0x7
bool doClicking = false; unsigned long lcdTimeout = 1500;
bool isOn = false;
unsigned long lcdTimeout = 1000;
unsigned long lcdLastSet = 0; unsigned long lcdLastSet = 0;
unsigned long debounceDelay = 50; unsigned long debounceDelay = 50;
@ -37,6 +34,11 @@ typedef struct
DebounceButton up, down, left, right, select; DebounceButton up, down, left, right, select;
bool doClicking = false;
unsigned long lastClickTime = 0;
int clickColor = 0;
void setup() { void setup() {
Serial.begin(9600); Serial.begin(9600);
@ -46,9 +48,10 @@ void setup() {
Mouse.begin(); Mouse.begin();
Keyboard.begin(); Keyboard.begin();
Serial.println("AutoClicker3000"); lcd.print("AutoClicker 3000");
lcd.print("AutoClicker3000"); lcd.setCursor(0, 1);
lcd.setBacklight(WHITE); lcd.print("For Jasper");
lcd.setBacklight(YELLOW);
lcdLastSet = millis(); lcdLastSet = millis();
} }
@ -67,7 +70,6 @@ bool triggered(DebounceButton &b) {
int clickDelay = 100; // millis int clickDelay = 100; // millis
int delayChange = 10; // millis int delayChange = 10; // millis
char modeName[] = "Roblox ";
void loop() { void loop() {
uint8_t buttons = lcd.readButtons(); uint8_t buttons = lcd.readButtons();
@ -127,15 +129,16 @@ void loop() {
} }
if (doClicking) { if (doClicking) {
if (isOn) { unsigned long time = millis();
lcd.setBacklight(RED); if ((unsigned long)(time - lastClickTime) >= clickDelay) {
if (clickColor == RED) {
clickColor = WHITE;
} else {
clickColor = RED;
}
lcd.setBacklight(clickColor);
Mouse.click(MOUSE_LEFT); Mouse.click(MOUSE_LEFT);
isOn = false; lastClickTime = time;
delay(clickDelay);
} else {
lcd.setBacklight(WHITE);
isOn = true;
delay(clickDelay);
} }
} }
@ -145,6 +148,4 @@ void loop() {
lcd.print(" "); lcd.print(" ");
lcdLastSet = 0; lcdLastSet = 0;
} }
// delay(3);
} }