void SimpleOpenNIViewer::keyboard_callback (const pcl::visualization::KeyboardEvent& event, void* cookie) { unsigned char key = 0; string* message = (string*)cookie; cout << (*message) << " :: "; if (event.getKeyCode()) { key = event.getKeyCode(); //cout << "the key \'" << event.getKeyCode() << "\' (" << (int)event.getKeyCode() << ") was"; } else ;//cout << "the special key \'" << event.getKeySym() << "\' was"; if (event.keyDown()) ;//cout << " pressed" << endl; else { if(key ) { proc_key(key); //cout << " released" << endl; } } }
main() { unsigned char key_s,key_v; key_v = 0x03; P2 = 0xfe; while(1) { key_s = scan_key(); if(key_s != key_v) { delayms(10); key_s = scan_key(); if(key_s != key_v) { key_v = key_s; proc_key(key_v); } } } }
void main(void) { P0 = 0xff; P2 = 0xff; TMOD = 0x11; // 定时器0, 1工作模式1, 16位定时方式 TH1 = 0xdc; TL1 = 0; TH0 = 0xFC; TL0 = 0x17; clr_time(); // dis_digit = 0x7f; // 初始显示P20口数码管 dis_index = 0; // key_times = 0; key_v = 0x01; IE = 0x8a; // 使能timer0, timer1中断 TR0 = 1; TR1 = 0; while(1) { if(scan_key()) { delayms(10); if(scan_key()) { key_v = key_s; proc_key(); } } } }