Stap 4: Firmware
Van dit apparaat ontwerp is gebaseerd op de hardware van de lage Pin graaf Development Kit van Microchip, Microchip Solutions heeft voorbeeld programma's voor die ontwikkeling kit, dus het is vrij gemakkelijk om hen draait op het apparaat in dit Instructable aan bod.
Voordetoepassing van dit project gebruikte ik het voorbeeld van apparaat USB - HID - toetsenbord voor de lage Pin graaf Development Kit. Maar er zijn verschillende andere apparaten die op deze hardware/apparaat, iets dat 10 schakelaar ingangen gebruiken kon kunnen worden geprogrammeerd.
Opgenomen in de ZIP op stap 1 is de MPLAB project-bestanden, moet u het installeren van de nieuwste versie van MPLAB en de recentste versie van de C18-compiler. Microchip Downloads kunnen hier worden gevonden
Overzicht van de firmware:
De opgenomen projectbestanden werden gegrepen en aangepast ten opzichte van de Microchip voorbeeldcode. Ze had schreef het op een manier zodat het kan draaien op meerdere verschillende PIC apparaten, dus er is een heleboel extra code niet nodig. De rest is meestal USB gerelateerde code werd de enige functie die is bewerkt de Keyboard() functie.
ProcessIO() -> Keyboard() -> Check als IN eindpunt is klaar -> Switches controleren -> Send Data -> ProcessIO()
De schakelaars staat zijn gecontroleerd en vergeleken met hun vorige staat. Als de Staten verschillen de switch wordt beschouwd als gedrukt en zal een data buffer met de vereiste gegevens doorvoeren en vervolgens verzenden. Vervolgens doorgaan met de spellingcontrole van de schakelaars.
hid_report_in [0] = is de modifier byte, het houdt de status van shift, alt, ctrl, gui(windows) toetsen
hid_report_in [1] = 0; is gereserveerd en altijd 0
hid_report_in [2] via [7] / / kan een keycode, maximaal 6 toetsen kan worden ingedrukt en gerapporteerd tegelijk
Zie de "HID gebruik tabellen" pag. 52 voor toetscodes
Modifier key grafiek:
Bitssleutel
0 LINKS CTRL
1 LINKER SHIFT
2 ALT LINKS
3 LINKER GUI
4 JUISTE CTRL
5 RECHTS VERSCHUIVEN
6 JUISTE ALT
7 JUISTE GUI
In het volgende voorbeeld:
hid_report_in [0] = 4; ALT
hid_report_in [0] = 8; L-GUI
hid_report_in [0] = 7; CTRL + alt + shift
Sommige opdrachten moet een tweede sleutel verzonden of belangrijke combo verzonden, door de gegevensbytes NextModKey en NextKey AnotherFlag vlag vervolgens in de firmware, in te stellen nadat de primaire opdracht is verzonden, stuurt zij een ander rapport met die belangrijke waarden vullen.
Zoals minimaliseren venster waarin de Windows-sneltoets Alt + spatiebalk te drukken is, drukt u op n.