Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: keypad/keypad.cpp
- Revision:
- 1:1ae4a77af85b
- Parent:
- 0:8209bcf62e0a
--- a/keypad/keypad.cpp Mon Jan 30 09:40:01 2012 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-#include "keypad.h"
-
-Keypad::Keypad(PinName row3, PinName row2, PinName row1, PinName row0,
- PinName col3, PinName col2, PinName col1, PinName col0,
- int debounce_ms):
- _row0(row0), _row1(row1), _row2(row2), _row3(row3),
- _cols(col0, col1, col2, col3) {
- _debounce = debounce_ms;
- _setupRiseTrigger();
-}
-
-void Keypad::Start(void) {
- _cols = 0x0F;
-}
-
-void Keypad::Stop(void) {
- _cols = 0x00;
-}
-
-void Keypad::CallAfterInput(uint32_t (*fptr)(uint32_t index)) {
- _input.attach(fptr);
-}
-
-void Keypad::_callback(int row, InterruptIn &therow) {
- wait_ms(_debounce);
- if (therow != 1)
- return;
-
- int c = -1;
- _cols = _cols & 0x0E;
- if (therow == 0)
- c = 0;
- else {
- _cols = _cols & 0x0D;
- if (therow == 0)
- c = 1;
- else {
- _cols = _cols & 0x0B;
- if (therow == 0)
- c = 2;
- else
- c = 3;
- }
- }
- _input.call(row * 4 + c);
- Start(); // Re-energize all columns
-}
-
-void Keypad::_cbRow0Rise(void) {
- _callback(0, _row0);
-}
-void Keypad::_cbRow1Rise(void) {
- _callback(1, _row1);
-}
-void Keypad::_cbRow2Rise(void) {
- _callback(2, _row2);
-}
-void Keypad::_cbRow3Rise(void) {
- _callback(3, _row3);
-}
-
-void Keypad::_setupRiseTrigger(void) {
- _row0.rise(this, &Keypad::_cbRow0Rise);
- _row1.rise(this, &Keypad::_cbRow1Rise);
- _row2.rise(this, &Keypad::_cbRow2Rise);
- _row3.rise(this, &Keypad::_cbRow3Rise);
-}
\ No newline at end of file