lib/keypad/Keypad.cpp

changeset 28
424d792fea4f
parent 26
86f099bda525
child 33
167010858b8d
equal deleted inserted replaced
27:8f2be7aaec00 28:424d792fea4f
44 _keys[row] = 0; 44 _keys[row] = 0;
45 45
46 while(_started) 46 while(_started)
47 { 47 {
48 _columns[col].write(1); 48 _columns[col].write(1);
49 Thread::wait(5); 49 ThisThread::sleep_for(5);
50 for(row=0; row<_nrows; row++) 50 for(row=0; row<_nrows; row++)
51 { 51 {
52 if (_rows[row].read()) 52 if (_rows[row].read())
53 { 53 {
54 if (_keys[row + _nrows*col] < 2) 54 if (_keys[row + _nrows*col] < 2)
68 } 68 }
69 } 69 }
70 } 70 }
71 _columns[col].write(0); 71 _columns[col].write(0);
72 col = (col+1) % _ncols; 72 col = (col+1) % _ncols;
73 Thread::wait(5); 73 ThisThread::sleep_for(5);
74 } 74 }
75 } 75 }
76 76
77 void Keypad::attach(const keyevent_callback_t& kp_callback, 77 void Keypad::attach(const keyevent_callback_t& kp_callback,
78 const keyevent_callback_t& kr_callback) 78 const keyevent_callback_t& kr_callback)
79 { 79 {
80 _kp_callback = kp_callback; 80 _kp_callback = kp_callback;
81 _kr_callback = kr_callback; 81 _kr_callback = kr_callback;
82 } 82 }
83 83
84 void Keypad::start(void) 84 void Keypad::start(void)
85 { 85 {
86 if (_started) 86 if (_started)
87 return; 87 return;
88 _started = true; 88 _started = true;
89 _loop.start(this, &Keypad::run); 89 _loop.start(callback(this, &Keypad::run));
90 } 90 }
91 91
92 void Keypad::stop(void) 92 void Keypad::stop(void)
93 { 93 {
94 _started = false; 94 _started = false;

mercurial