summaryrefslogtreecommitdiff
path: root/shared-module/gamepad/__init__.c
AgeCommit message (Collapse)Author
2021-03-15run code formatting scriptmicroDev
2020-05-13Gamepad & GamepadShift: Enable ticks while object existsJeff Epler
Otherwise, button presses might not be noticed.
2019-04-16Simplify type check in tick and init lastScott Shawcroft
2019-04-16Fully split gamepadshift from gamepadScott Shawcroft
2019-04-15Split GamePadShift from GamePad to save space on most boards.Scott Shawcroft
2019-04-12Reorganize the gamepad codeRadomir Dopieralski
2019-04-12More refactoringRadomir Dopieralski
2019-04-12Optimize the size of code for gamepadRadomir Dopieralski
2019-04-12Add debouncing to GamePadShiftRadomir Dopieralski
2019-04-12Go back to simple bit-banging in GamePadShift, fix problemsRadomir Dopieralski
2019-04-12Read one bit per system clock tick in GamePadShiftRadomir Dopieralski
2019-04-12Add GamePadShift for handling shift-register-based buttonsRadomir Dopieralski
2018-05-30Add gamepad_singleton to root pointersRadomir Dopieralski
2018-05-23Cache pullup state in gamepadRadomir Dopieralski
Don't check the pin's pull direction on every tick, instead cache it at the beginning. Also avoid a "can't get pull of output pin" error when one of the pins passed is in output mode.
2018-03-31Respect pin's pull in gamepadRadomir Dopieralski
While it is traditional to have buttons on pins that are pulled up, and have the button connect them to the ground, some CircuitPython boards (notably the CPX) have the button pins pulled low and the button connects them to VCC. This patch makes the gamepad only change the pin's pull if it wasn't already set when passed to the constructor, and also makes it consider a button pressed when its value is the opposite of its pull.
2017-10-22Gracefully reset the gamepad moduleRadomir Dopieralski
If a soft reset happens while the gamepad module is scanning for button presses, there is a moment when the pins get de-initialized, but the gamepad module is still trying to read them, which ends in a crash. We can avoid it by disabling scanning on reset. (cherry picked from commit 470a23d4c9345785bbaa830fdc036b4e982496c6) Conflicts: atmel-samd/main.c
2017-10-03Add a `gamepad` module for handling buttons in the background. (#295)Radomir Dopieralski
The `GamePad` singleton monitors buttons in the background to make sure a button press is never missed and debouncing happens consistently.