Paso 4: Firmware
Diseño de este dispositivo se basa en el hardware de bajo conteo de pines Development Kit de Microchip, Microchip Solutions tiene programas de ejemplo para ese kit de desarrollo por lo que es muy fácil hacer correr en el dispositivo en este Instructable.
Para los propósitos de este proyecto he utilizado el ejemplo USB Device - HID - teclado para Low Pin Count Development Kit. Pero hay varios otros dispositivos que podrían ser programados en este hardware/dispositivo, algo que podría utilizar 10 entradas del interruptor.
Incluido en el ZIP en el paso 1 es los archivos de proyecto MPLAB, debe instalar la última versión de MPLAB y la última versión del compilador C18. Descargas de microchip se pueden encontrar aquí
Resumen de firmware:
Los archivos del proyecto incluidos fueron tomados y modificados del código de ejemplo de Microchip. Ellos había escribió de una manera que puede ejecutar múltiples dispositivos PIC, así que hay mucho código extra que no necesita. El resto es sobre todo USB código relacionado, la única función que se modificó fue la función de Keyboard().
ProcessIO() -> Keyboard() -> control si en extremo está listo -> comprobar interruptores -> enviar datos -> ProcessIO()
El estado de los interruptores son revisado y Comparado con su estado anterior. Si los Estados diferencian el interruptor se considera presionado y llena unas búfer con la necesaria de datos después de enviarlo. Continuación: comprobación de los interruptores.
hid_report_in [0] = es el octeto del modificante, contiene el estado de la shift, alt, ctrl, teclas gui(windows)
hid_report_in [1] = 0; es reservado y siempre 0
hid_report_in [2] a [7] / / puede ser un keycode, hasta 6 teclas puede ser presionado y registrado a la vez
Ver la página "Tablas de uso HID" 52 para códigos de teclas
Carta clave modificador:
Bits clave
CTRL IZQUIERDA 0
1 SHIFT IZQUIERDO
2 IZQUIERDA ALT
3 GUI IZQUIERDO
4 CTRL DERECHA
CAMBIO 5 DERECHA
ALT DERECHA 6
7 DERECHO GUI
Ejemplo:
hid_report_in [0] = 4; Alt
hid_report_in [0] = 8; GUI DE L
hid_report_in [0] = 7; Ctrl + alt + shift
Algunos comandos necesitan una segunda llave enviada o enviado combo clave, estableciendo llenando los bytes de datos NextModKey y NextKey luego ajuste AnotherFlag bandera en el firmware, después se envía el comando primario enviará un informe con los valores de clave.
Como minimizar la ventana que la combinación de teclas de Windows es Alt + barra espaciadora, pulse n.