Keyboard firmwares for Atmel AVR and Cortex-M
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

main.cpp 954B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #include <util/delay.h>
  2. #include <Arduino.h>
  3. #include "Usb.h"
  4. #include "hid.h"
  5. #include "hidboot.h"
  6. #include "parser.h"
  7. USB Usb;
  8. HIDBoot<HID_PROTOCOL_KEYBOARD> kbd(&Usb);
  9. KBDReportParser Prs;
  10. void usb_disable()
  11. {
  12. USBCON &= ~(1<<VBUSTI);
  13. UDIEN = 0;
  14. USBINT = 0;
  15. UDINT = 0;
  16. UDCON |= (1<<DETACH);
  17. USBCON &= ~(1<<USBE);
  18. PLLCSR = 0;
  19. UHWCON &= ~(1<<UVREGE);
  20. USBCON &= ~(1<<OTGPADE);
  21. }
  22. void setup()
  23. {
  24. usb_disable();
  25. // RX LED for debug
  26. DDRB |= (1<<0);
  27. Serial.begin( 115200 );
  28. while (!Serial) ;
  29. delay( 1000 );
  30. Serial.println("Start");
  31. if (Usb.Init() == -1) {
  32. Serial.println("OSC did not start.");
  33. }
  34. delay( 200 );
  35. kbd.SetReportParser(0, (HIDReportParser*)&Prs);
  36. }
  37. void loop()
  38. {
  39. Usb.Task();
  40. }
  41. int main(void)
  42. {
  43. // arduino/wiring.c(Timer initialize)
  44. init();
  45. setup();
  46. for (;;) {
  47. loop();
  48. }
  49. return 0;
  50. }