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; |