Hoi 
Ik ben bezig met het programmeren van mijn Arduino Pro Micro-aangestuurd keypad, waar ik meerdere lagen en macros op wil hebben. Dat is voor een groot deel gelukt. Ik heb echter mijn twijfels over hoe ik met het geheugen om ga, maar ik zie geen andere manier om dit efficiënter te doen.
Broncode
KeyInfo.h
Elke KeyInfo heeft een type. Ik heb er hier 4 van: KeyCode (exclusief normale toets), Layer (exclusief om tussen layers te wisselen), Dual (combinatie van de vorige), Macro (exclusief om een macro te starten).
Macro.h
Een Macro heeft een array aan keystrokes, elke keystroke heeft een begintijd en eindtijd.
keypad.ino
De hoofd-schets. Ik maak voor elke KeyInfo variant die ik gebruik in de layers een object. Een layer is gedefiniëerd als een twee-dimensionale array van pointers naar KeyInfos. Aan de hand van wat toetsen kan ik wisselen tussen layers, door de actieve layer-pointer te laten wijzen naar één van de bestaande layers.
Met het huidige programma zit ik al op 39% van het geheugen. Dit zijn 3 normale layers met bijna elke toets een eigen KeyInfo, en 1 macro-laag met een CTRL-ALT-DEL macro en een "Hello, World!" macro.
Vooral de macro hakt erin. De Hello World (13 strokes, 1 Macro, 1 KeyInfo) is al 139 bytes groot.
Kan dit slimmer? Of verwacht ik te veel van mijn Pro Micro?
Ik ben bezig met het programmeren van mijn Arduino Pro Micro-aangestuurd keypad, waar ik meerdere lagen en macros op wil hebben. Dat is voor een groot deel gelukt. Ik heb echter mijn twijfels over hoe ik met het geheugen om ga, maar ik zie geen andere manier om dit efficiënter te doen.
Broncode
KeyInfo.h
Elke KeyInfo heeft een type. Ik heb er hier 4 van: KeyCode (exclusief normale toets), Layer (exclusief om tussen layers te wisselen), Dual (combinatie van de vorige), Macro (exclusief om een macro te starten).
Macro.h
Een Macro heeft een array aan keystrokes, elke keystroke heeft een begintijd en eindtijd.
keypad.ino
De hoofd-schets. Ik maak voor elke KeyInfo variant die ik gebruik in de layers een object. Een layer is gedefiniëerd als een twee-dimensionale array van pointers naar KeyInfos. Aan de hand van wat toetsen kan ik wisselen tussen layers, door de actieve layer-pointer te laten wijzen naar één van de bestaande layers.
Met het huidige programma zit ik al op 39% van het geheugen. Dit zijn 3 normale layers met bijna elke toets een eigen KeyInfo, en 1 macro-laag met een CTRL-ALT-DEL macro en een "Hello, World!" macro.
code:
1
2
| Program size: 9,254 bytes (used 32% of a 28,672 byte maximum) (1.02 secs) Minimum Memory Usage: 994 bytes (39% of a 2560 byte maximum) |
Vooral de macro hakt erin. De Hello World (13 strokes, 1 Macro, 1 KeyInfo) is al 139 bytes groot.
Kan dit slimmer? Of verwacht ik te veel van mijn Pro Micro?