voor willem test
Dependencies: 4DGL MODSERIAL mbed mbos
Diff: buttontest.cpp
- Revision:
- 6:e0bf3b244d7c
diff -r 99594f4ab659 -r e0bf3b244d7c buttontest.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/buttontest.cpp Tue Jan 29 14:54:14 2013 +0000 @@ -0,0 +1,73 @@ +// L. van der Kolk, ELVEDEKA, Holland // +// File: buttontest.cpp +// Functions to test KEY message with 4 Mbed board test buttons + +#include "mbed.h" +#include "MODSERIAL.h" + +#include "mbos.h" +//#include "mbos_definitions.h ------!!!!! +#define SEND_KEYMESSAGE_TASK_ID 3 // +#define KEY_EVENT 4 // +//---------------------------------------- + +DigitalOut led4(LED4); // : LED 4 on Mbed board for test +BusInOut button(p24, p23, p22, p21); // : Mbed buttons as 4 bit bus + +extern mbos CDU_OS; +extern int key_hit_ID; + +int button_info = 0; + +void init_buttons_Mbed() { + // set button bus as input : + button.input(); + // enable pull up resistors on inputs: + button.mode(PullUp); +} + +void scan_buttons_Mbed() { + static int pushed = false; + + switch (button) { + case 0xF : { + // nothing pushed, reset pushed flag: + pushed = false; + break; + } + case 0x7 : { + // button 1 pushed: + if ( pushed == false ) button_info = 33; + pushed = true; + break; + } + case 0xB : { + // button 2 pushed: + if ( pushed == false ) button_info = 34; + pushed = true; + break; + } + case 0xD : { + // button 3 pushed: + if ( pushed == false ) button_info = 12; + pushed = true; + break; + } + case 0xE : { + // button 4 pushed: + if ( pushed == false ) button_info = 21; + pushed = true; + break; + } + default : { + break; + } + } + if (button_info != 0) { + key_hit_ID = button_info; // : set global key_ID + button_info = 0; + CDU_OS.SetEvent(KEY_EVENT,SEND_KEYMESSAGE_TASK_ID); // : set KEY event ( = key pressed ) + led4 = !led4; // : toggle LED 4 to show button pressed + + } +}