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