-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Neo2 sa su #1
base: master
Are you sure you want to change the base?
Neo2 sa su #1
Conversation
- did not move any of the layer-stack code into code for a 'flex-array' type, or something similar. i'm thinking that most of the things the layer-stack does aren't sufficiently generalizable. for instance, one of the biggest general functions in the layer-stack implementation is `_shift_elements()`; but shifing elements is only something you want to do when you're messing with elements not on the the top of the stack (which breaks the definition of a general stack). so i think i'll leave things as they are for now. the functionality can always be split out later if it turns out to be needed elsewhere.
one bug left to fix before it's actually doing what it's supposed to scanning at about 140Hz :D , and only slightly bigger than the old firmware (though, with many fewer layers compiled in...) (also, the winavr makefile gets the hex to be smaller somehow; i should probably look into that)
lol - i'd forgotten to do this before
where it should have been (and i thought it was) before ... oops :)
Also, I just tested the scan rate without debounce (lol, should have thought of that before) and it's about 471Hz. This is much faster than the 200Hz (every 5ms) that we need to limit ourselves to due to the switches needing a 5ms debounce time. It should be trivial to tune the scan rate to closer to 200Hz once I get lib/timer implemented.
untested, but it should work. i'll test before pushing to github, and update if i messed anything up
in the while loop in main() that busywaits until we can scan again, the compiler was optimizing out the function call, it seems like, when i wrote `(uint8_t)timer__get_milliseconds()`; if i cast the whole expression (not just the function) to `(volatile uint8_t)`, or if i just didn't cast anything at all, it worked. not sure why the compiler would optimize the function call out like that though, even if it was cast... this happened when i put it in a for loop too. i need to research it just a little more, and write a warning about it in the timer documentation.
especially relating to the unexpected behavior i was getting last night
I needed to introduce these, because I had a problem with typing "<>". On my PC configured to use German keyboard layout following happened: The key ">" was not processed by the OS when "<" was typed just before. The reason I think is, that normally on a German keyboard "<" and ">" are on the same key (the key right of the left "shift"). For "<" you press that key. For ">" you have to first release the key press and hold "shift", and press the key again. This was not possible with the KEYS__DEFAULT and KEYS__SHIFTED macros. Therefore I introduced the TYPE__ macros. They do all the work, i.e. send a press followed by a release to the OS. With these macros it is not possible any more to use repeating of keys at the OS level, but for me this is no problem, because I don't use this for normal keys. Maybe this is a problem with shortcut combinations, where multiple keys need to be pressed simultaniously. Since the ALT_GR macros where also doing all the work on key press, I renamed them to TYPE__, to reflect this.
Conflicts: makefile readme.md src/keyboard/ergodox/controller/mcp23018.md src/lib-other/pjrc/usb_keyboard/usb_keyboard.c src/lib-other/pjrc/usb_keyboard/usb_keyboard.h src/lib/key-functions/private.c src/lib/key-functions/private.h src/lib/key-functions/public.h src/lib/key-functions/public/basic.c src/lib/key-functions/public/special.c src/lib/usb/usage-page/keyboard.h src/main.c src/main.h src/makefile
Conflicts: firmware/keyboard/ergodox/options.mk readme.md
ESC liegt: 4. Reihe, 1. Taste INS liegt: 4. Reihe, 3. Taste
Strg (CTRL)-Taste auf diese Taste gesetzt, damit man bei umschaltung auf mod4 mit dem kleinen Finger die STRG-Taste leichter erreicht, um z.B. Wortweise mit dem Cursor vor oder zurück springen zu können.
@xstable I think you wanted to merge into my neo2 branch. About the num-keys from the tenblock: I don't remember exactly why I chose the tenkey instead of the normal keys, but I think it was because at work I use Winsplit Revolution to move windows between my monitors or to maximize windows or split them. And the default is use Ctrl+Alt+tenkey5 to maximize a window. But that should be configurable (and I am trying to use Linux at work as well). I have had issues with numlock not being enabled by default myself. But for this I have the guest-keyboard still attached. |
Rechte Hand, 3.Reihe, 1.Taste "sz" (breite Taste)
oberhalb von src liegen muss
Hinweis wie die vorkompilierte Firmware zu installieren ist.
Some changes of neo2-Layout:
Have changed mod4 Numpad to normal digits, so you don't have to toggle numlock always if you first use it after boot.
I've also add some operations like ,+*/: to this mod4 which are arround the tenblock.
I've also changed the F1-F12 Layer to have all the F-Keys on left-side (better if you use the mouse), and add ALT + CTRL to this Layer.