Advertisement
phillips321

teensy DLP bypass

Sep 23rd, 2011
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.00 KB | None | 0 0
  1. #include <LiquidCrystalFast.h>
  2. #include <usb_private.h>
  3. #include <SD.h>
  4. #include <usb_keyboard.h>
  5.  
  6. LiquidCrystalFast lcd(8, 9, 10, 4, 5, 6, 7);
  7. //                8 = RS    4 = D4   7 = D7
  8. //                   9 = R/w   5 = D5
  9. //                      10 = E    6 = D6
  10. const int ledPin = 11;
  11. const int chipSelect = 0;
  12. int leds = 0;
  13. int NumValue = 0;
  14. int ScrollValue = 0;
  15. int BeforeCapsValue = 0;
  16. int CurrentCapsValue = 0;
  17.  
  18. int readings[10];
  19.  
  20. boolean IsNumbOn(int val){if ((val & 1) == 1){return true;} else {return false;}}
  21. boolean IsCapsOn(int val){if ((val & 2) == 2){return true;} else {return false;}}
  22. boolean IsScrlOn(int val){if ((val & 4) == 4){return true;} else {return false;}}
  23.  
  24. void setup() {//--------------------------------------------------------------------------------------------------------------------
  25.     pinMode(ledPin, OUTPUT);
  26.   for(int i = 0; i < 30; i++){digitalWrite(ledPin, HIGH);delay(50);
  27.     digitalWrite(ledPin, LOW);delay(50);}
  28.    
  29.   lcd.begin(16, 4);
  30.   lcd.setCursor(0,0); lcd.print("   -    -       ");
  31.   lcd.setCursor(0,1); lcd.print("                ");
  32.   lcd.setCursor(0,2); lcd.print("Elapsed         ");
  33.   lcd.setCursor(0,3); lcd.print("Write           ");
  34.  
  35.   if (!SD.begin(chipSelect)) {lcd.clear();lcd.setCursor(0,0); lcd.print("Card failed     ");lcd.setCursor(0,1); lcd.print("or not present! ");delay(99999999);}
  36.  
  37.   File dataFile = SD.open("datalog.txt", FILE_WRITE);
  38.   if (dataFile) {dataFile.println(""); dataFile.print("NewDataSet");}  
  39.   else {lcd.clear();lcd.setCursor(0,0); lcd.print("error opening");lcd.setCursor(0,1); lcd.print("datalog.txt");}
  40.  
  41.   for (int thisReading = 0; thisReading < 10; thisReading++)
  42.     readings[thisReading] = 0;
  43. }
  44.  
  45. void loop() {//--------------------------------------------------------------------------------------------------------------------
  46.   File dataFile = SD.open("datalog.txt", FILE_WRITE);
  47.   lcd.setCursor(10,2); lcd.print(millis());
  48.   leds = keyboard_leds;
  49.   NumValue = (leds & 1);
  50.  
  51.   // output to lcd
  52.   if (IsNumbOn(leds)){lcd.setCursor(0,0); lcd.print("NUM");  //NumbLockCheck
  53.   } else {lcd.setCursor(0,0); lcd.print("   ");}
  54.   if (IsCapsOn(leds)){lcd.setCursor(4,0); lcd.print("CAPS");  //CapsLockCheck
  55.   } else {lcd.setCursor(4,0); lcd.print("    ");}
  56.   if (IsScrlOn(leds)){lcd.setCursor(9,0); lcd.print("SCROLL");  //ScrlLockCheck
  57.   } else {lcd.setCursor(9,0); lcd.print("      ");}
  58.    
  59.  
  60.  
  61.   if (IsScrlOn(leds)){ //teensy has control
  62.     //record value of num 0/1
  63.     dataFile.print(NumValue);
  64.        
  65.    
  66.    
  67.     //display recorded data
  68.     for(int i = 0; i < 10; i++){
  69.       readings[10 - i] = readings[9 - i];
  70.       lcd.setCursor(5 + i,3); lcd.print(readings[i]);
  71.     }
  72.   readings[0] = NumValue;
  73.  
  74.   //turn scroll off
  75.   PressAndRelease(KEY_SCROLL_LOCK);
  76.   delay(500);
  77.  
  78.   }
  79.  
  80. }
  81.  
  82. void PressAndRelease(int KeyCode){
  83.     Keyboard.set_key1(KeyCode); // use r key
  84.     Keyboard.send_now(); // send strokes
  85.     Keyboard.set_key1(0);
  86.     Keyboard.send_now(); // send strokes
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement