Go Down

Topic: Maussteuerung mit Teensy lässt Maus aktiv.... (Mouse.set_buttons - Befehl) (Read 51 times) previous topic - next topic

hgpassen

Hallo!
Ich bin noch ziemlicher Anfänger im Programmieren des Arduino
(bzw. hier des Teensy wegen der USB-Schnittstelle).

Ich bin dabei, das Program DaVinci Resolve z. T. über Encoder-Steuerung zu benutzen,
um das Mausgeschubse der kleinen Schieberegler zu vermeiden, klappt auch soweit sehr gut.
Aber für den Transformbereich lässt sich das nur über Maussteuerung machen: 
Linke Maustaste gedrückt halten, dann Maus bewegen.

Die Mauscodes für den Teensy funktioniert auch bestens dabei, aber leider bleibt die Maus dann
aktiv, wenn ich keinen Code einfüge für Maus aus (Mouse.set_buttons(0,0,0), logisch.
Aber sobald ich den Code irgendwo im Sketch einfüge, wird der Code für linke Maustaste gedrückt
(Mouse.set_buttons(1,0,0)) auch nicht mehr erkannt, egal, wo ich den Code einfüge, ob im Loop
oder in den beiden Funktionen zur Werteveränderung.
Irgendwo habe ich da einen Denkfehler oder so....
Kann mir da jemand einen Tipp geben?
Ganz lieben Dank schon mal fürs Mitdenken!

HG

Hier im Folgenden der komplette Code, noch ohne den Maus-Deaktivierungs-Code.

Code: [Select]
/* DaVinci Resolve Encoder-Abfrage für Bild-Transformation
 * Transformbereich wird über Maus gesteuert:
 * Linke Maustaste gedrückt halten und Maus bewegen verändert die Werte
 */

int messungPin1 = LOW;     // Werte-Initialisierung
int messungPin1Alt = LOW;
int encoderWert = 0;

void setup()              // Encoderpins als Eingang geschaltet
 {
 pinMode(3, INPUT);
 pinMode(4, INPUT);
 }
 
void loop()                // Hauptprogramm zur Pinabfrage
 {
 messungPin1 = digitalRead(3);
 if ((messungPin1 == HIGH) && (messungPin1Alt == LOW))
  {
 if (digitalRead(4) == HIGH)
   { 
 TransformMinus();              //  Funktionsaufruf zur Werteverminderung
   }
 else
   {   
 TransformPlus();               //  Funktionsaufruf zur Werteerhöhung
   }
  }
 messungPin1Alt = messungPin1;
 }
 
 void TransformMinus()         //  Funktion zur Werteverminderung
{
 encoderWert++;
 Mouse.set_buttons (1,0,0);
 Mouse.move (-1,0);
 }
 
void TransformPlus()           //  Funktion zur Werteerhöhung
{
 encoderWert--;
 Mouse.set_buttons (1,0,0);
 Mouse.move (1,0);
}

Go Up