summaryrefslogtreecommitdiff
path: root/shared-module/gamepad/GamePad.c
AgeCommit message (Collapse)Author
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-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-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-23Avoid uninitialized gamepad on exceptionRadomir Dopieralski
Raise exceptions before the gamepad_singleton is created. Also, use mp_raise for creating the exceptions.
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-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.