Sketch für Digispark Enter-mousjiggle

Hallo,

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?

Warum hältst Du die Fehlermeldungen geheim, wenn Du Hilfe suchst?

Gruß Tommy

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

hier die fehlermeldung.

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

also bekomme ich die beiden sketche nicht zusammen auf den digispark?

Manchmal reicht es nicht, eine Lib zu finden.
Sobald du sie gefunden hast, ist es deine und du musst sehen ob du sie verbessern kannst.

Auch wenn ich @fony nur teilweise verstehe, gebe ich ihm mal recht: soweit, dass man sieht ob es gehen könnte, sollte man schon kommen.

Ok danke.
Da fehlt mir leider der Ansatz.

Mal schauen ob es hiermit funktioniert!

ein Leonardo/Pro Micro sollte eigentlich Joystick und Keyboard gleichzeitig können...

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.