Advertisement
Guest User

Untitled

a guest
Dec 9th, 2014
1,476
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
  3.                  Version 2.71828, December 2014
  4.  
  5. Copyright (C) 2014 me <vomitme @g mail>
  6.  
  7. Everyone is permitted to copy and distribute verbatim or modified
  8. copies of this license document, and changing it is allowed as long
  9. as the name is changed.
  10.  
  11.            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
  12.   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
  13.  
  14.  0. You just DO WHAT THE FUCK YOU WANT TO.
  15. */
  16.  
  17. #include <digitalIOPerformance.h>
  18.  
  19. #define PIN_PDIODE A0
  20. #define PIN_BUTTON 2
  21. #define BUTTON_PRESSED LOW
  22.  
  23. void setup()
  24. {
  25.   Mouse.begin();
  26.   Serial.begin(9600); //somehow it can act as a mouse and a serial thing simultaneously
  27.   pinModeFast(PIN_PDIODE, INPUT);
  28.   pinModeFast(PIN_BUTTON, INPUT);
  29. }
  30.  
  31. void loop()
  32. {
  33.   while (digitalReadFast(PIN_BUTTON) == BUTTON_PRESSED) {
  34.     unsigned long i = 0, s, n;
  35.  
  36.     while (digitalReadFast(PIN_PDIODE) != LOW) {
  37.       Serial.print(analogRead(PIN_PDIODE));
  38.       Serial.println("starting position too bright :P");
  39.     }
  40.  
  41.     //shake mouse before the twitchnot necessary
  42.     for (i = 0; i < 12; i++) {
  43.       Mouse.move(0,1,0);
  44.       delayMicroseconds(2000);
  45.       Mouse.move(0,-1,0);
  46.       delayMicroseconds(2000);
  47.     }
  48.    
  49.     //twitch
  50.     i = 0;
  51.     Mouse.move(0,-100,0);
  52.  
  53.     //measure time until screen change detected
  54.     s = micros(); //~3us
  55.     while (digitalReadFast(PIN_PDIODE) != HIGH) i++; //~0.6us per cycle when using digitalReadFast
  56.     n = micros(); //~3us
  57.  
  58.     //print results
  59.     //Serial.print("time (us):\t");
  60.     Serial.println(n - s);
  61.     //Serial.print("\tcycles:\t");
  62.     //Serial.println(i);
  63.    
  64.     delay(10);
  65.     Mouse.move(0,100,0);
  66.     delay(random(14,62));
  67.     //delay(100); //uncomment this if vsync
  68.   }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement