I have a quick question, I'm trying to use the OneButton library.(https://github.com/mathertel/OneButton) I can get it to compile; but it runs into the following error.
Code: Select all
*** Collecting prototypes...
Preprocessing file: Custom.c with SDCPP...
Preprocessing file: Print.cpp with SDCPP...
Compiling Print_sdcpp_.cpp ...
Preprocessing file: Stream.cpp with SDCPP...
Compiling Stream_sdcpp_.cpp ...
Preprocessing file: HardwareSerial.cpp with SDCPP...
Compiling HardwareSerial_sdcpp_.cpp ...
Preprocessing file: HLCore.cpp with SDCPP...
Compiling HLCore_sdcpp_.cpp ...
Preprocessing file: OneButton.cpp with SDCPP...
Compiling OneButton_sdcpp_.cpp ...
Preprocessing file: Switch.cpp with SDCPP...
Compiling Switch_sdcpp_.cpp ...['__cxx__Stream__method__findUntil_02p05p0d', '__cxx__OneButton__method__attachPress_0165', '__cxx__HardwareSerial__method__readBytes_02p0509', '__cxx__Stream__method__peekNextDigit_00', '__cxx__Print__method__print_010d', '__cxx__OneButton__method__attachDuringLongPress_0165', '__cxx__HardwareSerial__method__print_020905', '__cxx__Stream__method__getWriteError_00', '__cxx__Stream__method__read_00', '__cxx__Stream__method__findUntil_02p0dp0d', '__cxx__HardwareSerial__method__peekNextDigit_00', '__cxx__Stream__method__find_010d', '__cxx__Stream__method__println_021605', '__cxx__Stream__method__parseFloat_010d', '__cxx__Stream__method__write_02p0509', '__cxx__HardwareSerial__method__end_00', '__cxx__Stream__method__timedPeek_00', '__cxx__HardwareSerial__method__readBytes_02p0d09', '__cxx__HardwareSerial__method__getWriteError_00', '__cxx__HardwareSerial__method__setWriteError_0111', '__cxx__HardwareSerial__method__println_021105', '__cxx__Stream__method__dumpPrint_02p0505', '__cxx__Stream__method__setDumpLine_0105', '__cxx__Print__method__getWriteError_00', '__cxx__Stream__method__println_010d', '__cxx__OneButton__method__tick_00', '__cxx__Print__method__setWriteError_0111', '__cxx__Print__method__setDumpLine_0105', '__cxx__Stream__init00', '__cxx__HardwareSerial__init0105', '__cxx__Stream__method__print_020505', '__cxx__Print__method__fixPrint_021205', '__cxx__HardwareSerial__method__print_010d', '__cxx__HardwareSerial__method__print_020a05', '__cxx__Stream__method__timedRead_00', '__cxx__Stream__method__print_021505', '__cxx__Stream__method__println_021105', '__cxx__HardwareSerial__method__print_01p0d', '__cxx__Print__method__print_021205', '__cxx__HardwareSerial__method__find_02p0d09', '__cxx__HardwareSerial__method__timedPeek_00', '__cxx__Stream__method__print_021105', '__cxx__Stream__method__find_02p0d09', '__cxx__HardwareSerial__method__read_00', '__cxx__Print__method__print_020505', '__cxx__Print__method__print_020905', '__cxx__Print__method__dumpPrint_02p0505', '__cxx__Print__method__println_021205', '__cxx__Stream__method__print_021205', '__cxx__Print__method__print_021605', '__cxx__Stream__method__findUntil_04p0d09p0d09', '__cxx__Print__method__println_00', '__cxx__HardwareSerial__method__timedRead_00', '__cxx__HardwareSerial__method__fixPrint_021105', '__cxx__Stream__method__fixPrint_021205', '__cxx__Print__method__println_020905', '__cxx__HardwareSerial__method__println_021205', '__cxx__Stream__method__readBytes_02p0d09', '__cxx__OneButton__method__setDebounceTicks_0111', '__cxx__Stream__method__find_02p0509', '__cxx__HardwareSerial__method__setDumpLine_0105', '__cxx__Print__method__println_021605', '__cxx__Print__method__print_021505', '__cxx__HardwareSerial__method__parseFloat_010d', '__cxx__Stream__method__readBytes_02p0509', '__cxx__Stream__method__print_021605', '__cxx__Stream__method__parseInt_010d', '__cxx__HardwareSerial__method__available_00', '__cxx__Stream__method__readBytesUntil_030dp0509', '__cxx__Stream__method__println_021205', '__cxx__HardwareSerial__method__print_021105', '__cxx__OneButton__method__attachDoubleClick_0165', '__cxx__HardwareSerial__method__println_021605', '__cxx__HardwareSerial__method__readBytesUntil_030dp0d09', '__cxx__Print__init00', '__cxx__Stream__method__print_010d', '__cxx__HardwareSerial__method__find_02p0509', '__cxx__Print__method__print_021105', '__cxx__Stream__method__findMulti_02prMultiTarget11', '__cxx__Stream__method__peek_00', '__cxx__Stream__method__setWriteError_0111', '__cxx__HardwareSerial__method__fixPrint_021205', '__cxx__Stream__method__setTimeout_010a', '__cxx__OneButton__method__setPressTicks_0111', '__cxx__OneButton__method__isLongPressed_00', '__cxx__HardwareSerial__method__find_010d', '__cxx__Print__method__println_020505', '__cxx__HardwareSerial__method__findUntil_04p0d09p0d09', '__cxx__HardwareSerial__method__write_0112', '__cxx__HardwareSerial__method__write_0111', '__cxx__Stream__method__print_01p0d', '__cxx__HardwareSerial__method__write_010a', '__cxx__HardwareSerial__method__print_021505', '__cxx__HardwareSerial__method__parseFloat_00', '__cxx__HardwareSerial__method__find_01p05', '__cxx__Stream__method__println_020a05', '__cxx__OneButton__method__attachLongPressStop_0165', '__cxx__Stream__method__clearWriteError_00', '__cxx__Stream__method__fixPrint_021105', '__cxx__HardwareSerial__method__findUntil_02p05p0d', '__cxx__HardwareSerial__method__print_020505', '__cxx__HardwareSerial__method__println_00', '__cxx__HardwareSerial__method__write_02p0509', '__cxx__HardwareSerial__method__readBytesUntil_030dp0509', '__cxx__HardwareSerial__method__write_0105', '__cxx__Print__method__print_020a05', '__cxx__HardwareSerial__method__write_0109', '__cxx__Stream__method__println_00', '__cxx__HardwareSerial__method__parseInt_010d', '__cxx__Stream__method__flush_00', '__cxx__HardwareSerial__method__println_020905', '__cxx__Print__method__println_021505', '__cxx__OneButton__method__setClickTicks_0111', '__cxx__HardwareSerial__method__dumpPrint_02p0505', '__cxx__HardwareSerial__method__print_021605', '__cxx__HardwareSerial__method__println_020a05', '__cxx__Stream__method__readBytesUntil_030dp0d09', '__cxx__Stream__method__find_01p0d', '__cxx__HardwareSerial__method__begin_010a', '__cxx__Stream__method__parseInt_00', '__cxx__HardwareSerial__method__println_021505', '__cxx__HardwareSerial__method__findMulti_02prMultiTarget11', '__cxx__HardwareSerial__method__print_021205', '__cxx__Stream__method__available_00', '__cxx__Print__method__println_021105', '__cxx__Stream__method__print_020a05', '__cxx__HardwareSerial__method__setTimeout_010a', '__cxx__Print__method__clearWriteError_00', '__cxx__HardwareSerial__method__flush_00', '__cxx__HardwareSerial__method__clearWriteError_00', '__cxx__Stream__method__println_020905', '__cxx__Stream__method__println_021505', '__cxx__OneButton__init021111', '__cxx__OneButton__method__attachClick_0165', '__cxx__HardwareSerial__method__findUntil_02p0dp0d', '__cxx__HardwareSerial__method__begin__0109', '__cxx__Print__method__write_02p0509', '__cxx__Print__method__println_01p0d', '__cxx__Stream__method__write_0105', '__cxx__HardwareSerial__method__peek_00', '__cxx__Print__method__println_020a05', '__cxx__HardwareSerial__method__find_01p0d', '__cxx__Stream__method__find_01p05', '__cxx__HardwareSerial__method__begin_00', '__cxx__HardwareSerial__method__println_01p0d', '__cxx__Print__method__println_010d', '__cxx__Print__method__print_01p0d', '__cxx__HardwareSerial__method__parseInt_00', '__cxx__OneButton__method__attachLongPressStart_0165', '__cxx__Print__method__fixPrint_021105', '__cxx__HardwareSerial__method__println_020505', '__cxx__HardwareSerial__method__println_010d', '__cxx__Stream__method__println_020505', '__cxx__Stream__method__println_01p0d', '__cxx__Stream__method__parseFloat_00', '__cxx__Print__method__write_0105', '__cxx__Stream__method__print_020905']
Switch_sdcpp_.cpp:806:1:error: uCxx:Can't find method __cxx__OneButton__method__attachDoubleClick_01p6f for object btn1 of class OneButton
uCxx returned error code:-1
This is my sketch code:
Code: Select all
#include <OneButton.h>
// button pin number
#define BTN1_PIN 9
#define BTN2_PIN 10
#define BTN3_PIN 11
#define BTN4_PIN 12
#define BTN5_PIN 14
#define BTN6_PIN 15
// built in LED number
#define LED_PIN 13
// Button States
OneButton btn1(BTN1_PIN, true);
OneButton btn2(BTN2_PIN, true);
OneButton btn3(BTN3_PIN, true);
OneButton btn4(BTN4_PIN, true);
OneButton btn5(BTN5_PIN, true);
OneButton btn6(BTN6_PIN, true);
void setup() {
Serial.begin(9600);
pinMode(LED_PIN, OUTPUT);
pinMode(BTN1_PIN, INPUT_PULLUP);
pinMode(BTN2_PIN, INPUT_PULLUP);
pinMode(BTN3_PIN, INPUT_PULLUP);
pinMode(BTN4_PIN, INPUT_PULLUP);
pinMode(BTN5_PIN, INPUT_PULLUP);
pinMode(BTN6_PIN, INPUT_PULLUP);
Serial.println("Starting TwoButtons...");
// link button 1 functions
//btn1.attachClick(click1);
btn1.attachDoubleClick(doubleclick1);
btn1.attachLongPressStart(longPressStart1);
btn1.attachLongPressStop(longPressStop1);
btn1.attachDuringLongPress(longPress1);
// link button 2 functions
//btn2.attachClick(click2);
btn2.attachDoubleClick(doubleclick2);
btn2.attachLongPressStart(longPressStart2);
btn2.attachLongPressStop(longPressStop2);
btn2.attachDuringLongPress(longPress2);
}
void loop() {
// keep watching the push buttons:
btn1.tick();
btn2.tick();
// You can implement other code in here or just wait a while
delay(5);
}
// ----- button 1 callback functions
// This function will be called when the button1 was pressed 1 time (and no 2. button press followed).
void click1() {
Serial.println("Button 1 click.");
} // click1
// This function will be called when the button1 was pressed 2 times in a short timeframe.
void doubleclick1() {
Serial.println("Button 1 doubleclick.");
} // doubleclick1
// This function will be called once, when the button1 is pressed for a long time.
void longPressStart1() {
Serial.println("Button 1 longPress start");
} // longPressStart1
// This function will be called often, while the button1 is pressed for a long time.
void longPress1() {
Serial.println("Button 1 longPress...");
} // longPress1
// This function will be called once, when the button1 is released after beeing pressed for a long time.
void longPressStop1() {
Serial.println("Button 1 longPress stop");
} // longPressStop1
// ... and the same for button 2:
void click2() {
Serial.println("Button 2 click.");
} // click2
void doubleclick2() {
Serial.println("Button 2 doubleclick.");
} // doubleclick2
void longPressStart2() {
Serial.println("Button 2 longPress start");
} // longPressStart2
void longPress2() {
Serial.println("Button 2 longPress...");
} // longPress2
void longPressStop2() {
Serial.println("Button 2 longPress stop");
} // longPressStop2