Keyboard firmwares for Atmel AVR and Cortex-M
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

преди 12 години
преди 11 години
преди 12 години
преди 11 години
преди 12 години
преди 11 години
преди 11 години
преди 12 години
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. Copyright 2012 Jun Wako <[email protected]>
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 2 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. #ifndef CONFIG_H
  15. #define CONFIG_H
  16. #define VENDOR_ID 0xFEED
  17. #define PRODUCT_ID 0x6800
  18. #define MANUFACTURER t.m.k.
  19. #define PRODUCT SHARP X68000 keyboard converter
  20. #define DESCRIPTION converts SHARP X68000 keyboard protocol into USB
  21. /* matrix size */
  22. #define MATRIX_ROWS 16
  23. #define MATRIX_COLS 8
  24. /* key combination for command */
  25. #define IS_COMMAND() ( \
  26. keyboard_report->mods == (MOD_BIT(KC_LALT) | MOD_BIT(KC_RALT)) || \
  27. keyboard_report->mods == (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI)) || \
  28. keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) \
  29. )
  30. /* legacy keymap support */
  31. #define USE_LEGACY_KEYMAP
  32. /* USART configuration
  33. * asynchronous, 2400baud, 8-data bit, non parity, 1-stop bit, no flow control
  34. */
  35. #ifdef __AVR_ATmega32U4__
  36. #define SERIAL_UART_BAUD 2400
  37. #define SERIAL_UART_DATA UDR1
  38. #define SERIAL_UART_UBRR ((F_CPU/(16UL*SERIAL_UART_BAUD))-1)
  39. #define SERIAL_UART_RXD_VECT USART1_RX_vect
  40. #define SERIAL_UART_TXD_READY (UCSR1A&(1<<UDRE1))
  41. #define SERIAL_UART_INIT() do { \
  42. UBRR1L = (uint8_t) SERIAL_UART_UBRR; /* baud rate */ \
  43. UBRR1H = (uint8_t) (SERIAL_UART_UBRR>>8); /* baud rate */ \
  44. UCSR1B = (1<<RXCIE1) | (1<<RXEN1) | /* RX: interrupt, RX: enable */ \
  45. (1<<TXEN1); /* TX: enable */ \
  46. UCSR1C = (0<<UPM11) | (0<<UPM10) | /* parity: none(00), even(01), odd(11) */ \
  47. (0<<UCSZ12) | (1<<UCSZ11) | (1<<UCSZ10); /* data-8bit(011) */ \
  48. sei(); \
  49. } while(0)
  50. #else
  51. # error "USART configuration is needed."
  52. #endif
  53. #endif