hab da ein kleines Projekt vor in dem ich gerne 2 Scripte vereinen möchte.
Einmal das ich ein Taster drücke womit ein Enter druck ausgeführt wird so wie hier:
#include "DigiKeyboard.h"
#define KEY_PRINT 40 // hier wird die USB-Key-ID zugewiesen.
void setup() {
pinMode(2,INPUT_PULLUP); // Taster für Eingabe an Pin2
}
void loop() {
int button = digitalRead(2);
if (button == 1){
DigiKeyboard.sendKeyStroke(KEY_PRINT);
DigiKeyboard.delay(250); // de-bouncing
}
DigiKeyboard.delay(100);
}
dann soll noch der MouseJiggle mit dazu kommen! Bekomme es aber nicht hin.
// Digispark Mouse Jiggler
// Written by James Franklin for Air-Gap in 2019
// www.air-gap.com.au
#include <DigiMouse.h>
unsigned int LowerCycleTime = 10000; //Minimum Time in milli-seconds between each mouse action Default: 10000 (10 Seconds), Max 65535ms
unsigned int UpperCycleTime = 30000; //Maximum Time in milli-seconds between each mouse action Default: 30000 (30 Seconds), Max 65535ms
//Random Function will randomly execute a mouse move between these two values
void setup() {
randomSeed(analogRead(0)); //Random Seed off background noise on analog pin
pinMode(1, OUTPUT);
DigiMouse.begin(); //start
}
void loop() {
//Moves mouse 1 pixel in a direction (up/down/left/right) in a square
digitalWrite(1, HIGH);
DigiMouse.moveY(1);
DigiMouse.delay(50);
digitalWrite(1, LOW);
DigiMouse.delay(random(LowerCycleTime, UpperCycleTime));
digitalWrite(1, HIGH);
DigiMouse.moveX(1); //
DigiMouse.delay(50);
digitalWrite(1, LOW);
DigiMouse.delay(random(LowerCycleTime, UpperCycleTime));
digitalWrite(1, HIGH);
DigiMouse.moveY(-1);
DigiMouse.delay(50);
digitalWrite(1, LOW);
DigiMouse.delay(random(LowerCycleTime, UpperCycleTime));
digitalWrite(1, HIGH);
DigiMouse.moveX(-1);
DigiMouse.delay(50);
digitalWrite(1, LOW);
DigiMouse.delay(random(LowerCycleTime, UpperCycleTime));
}
einzeln funktionieren die Scripte, sobald ich aber
#include "DigiKeyboard.h"
#include <DigiMouse.h>
kompilieren möchte kommen Fehlermeldungen.
Kann mir da jemand bitte weiterhelfen?
In file included from C:\Users\user\Documents\Arduino\digispark_enter\digispark_enter.ino:5:0:
C:\Users\user\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkMouse/DigiMouse.h: In function 'unsigned char usbFunctionSetup(unsigned char*)':
C:\Users\user\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkMouse/DigiMouse.h:287:8: error: redefinition of 'unsigned char usbFunctionSetup(unsigned char*)'
uchar usbFunctionSetup(uchar data[8]) {
^
In file included from C:\Users\user\Documents\Arduino\digispark_enter\digispark_enter.ino:4:0:
C:\Users\user\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkKeyboard/DigiKeyboard.h:220:8: error: 'unsigned char usbFunctionSetup(unsigned char*)' previously defined here
uchar usbFunctionSetup(uchar data[8]) {
^
In file included from C:\Users\user\Documents\Arduino\digispark_enter\digispark_enter.ino:5:0:
C:\Users\user\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkMouse/DigiMouse.h: In function 'unsigned char usbFunctionDescriptor(usbRequest*)':
C:\Users\user\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkMouse/DigiMouse.h:319:16: error: invalid conversion from 'const unsigned char*' to 'unsigned char*' [-fpermissive]
usbMsgPtr = rt_usbDeviceDescriptor;
^
C:\Users\user\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkMouse/DigiMouse.h:324:16: error: invalid conversion from 'const unsigned char*' to 'unsigned char*' [-fpermissive]
usbMsgPtr = rt_usbHidReportDescriptor;
^
exit status 1
Compilation error: exit status 1
Es ist nicht vorgesehen, dass diese beiden includes gleichzeitig verwendet werden, weil beide eine Funktion usbFunctionSetup definieren.
Ob diese Funktion evtl. gar dieselbe ist, kombiniert werden kann, oder wie das Problem sonst zu beheben ist, dazu müsste man sich die Bibliotheken ansehen...
Der zweite Fehler sollte eigentlich auch mit DigiMouse.h allein schon auftreten(?), und deutet auf eine alte Compilerversion hin, als der noch nicht so pingelig zwischen byte* und const byte* unterschieden hat.
Wen bei mir, bei einem Sketch was einiges auf dem Buckel hat und nur Kleinlichkeit geändert wurde, bei hochladen auf ein mall der Compiler meckert wird in der IDE bei Compiler Meldungen auf 'Standard' gesetzt somit kommen nur Warnungen und nicht direkt Abbruch.
Gerade bei älteren Beispielen wo die mall Fehlerfrei durchgingen passiert das die nicht wollen wen man Compiler Warnungen auf 'Alle' einstellt, nur da der Jenninger hat zB. eine unbenutzte variable drinnen welche man übersehen ha. Das ist leicht zu beheben, aber ganze Lib durackern wen man noch nicht zu viel Ahnung hat, ist was anderes