voor willem test
Dependencies: 4DGL MODSERIAL mbed mbos
buttontest.cpp@6:e0bf3b244d7c, 2013-01-29 (annotated)
- Committer:
- LvdK
- Date:
- Tue Jan 29 14:54:14 2013 +0000
- Revision:
- 6:e0bf3b244d7c
Goed werkende mbos versie met 0.5 sec ALIVE message
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
LvdK | 6:e0bf3b244d7c | 1 | // L. van der Kolk, ELVEDEKA, Holland // |
LvdK | 6:e0bf3b244d7c | 2 | // File: buttontest.cpp |
LvdK | 6:e0bf3b244d7c | 3 | // Functions to test KEY message with 4 Mbed board test buttons |
LvdK | 6:e0bf3b244d7c | 4 | |
LvdK | 6:e0bf3b244d7c | 5 | #include "mbed.h" |
LvdK | 6:e0bf3b244d7c | 6 | #include "MODSERIAL.h" |
LvdK | 6:e0bf3b244d7c | 7 | |
LvdK | 6:e0bf3b244d7c | 8 | #include "mbos.h" |
LvdK | 6:e0bf3b244d7c | 9 | //#include "mbos_definitions.h ------!!!!! |
LvdK | 6:e0bf3b244d7c | 10 | #define SEND_KEYMESSAGE_TASK_ID 3 // |
LvdK | 6:e0bf3b244d7c | 11 | #define KEY_EVENT 4 // |
LvdK | 6:e0bf3b244d7c | 12 | //---------------------------------------- |
LvdK | 6:e0bf3b244d7c | 13 | |
LvdK | 6:e0bf3b244d7c | 14 | DigitalOut led4(LED4); // : LED 4 on Mbed board for test |
LvdK | 6:e0bf3b244d7c | 15 | BusInOut button(p24, p23, p22, p21); // : Mbed buttons as 4 bit bus |
LvdK | 6:e0bf3b244d7c | 16 | |
LvdK | 6:e0bf3b244d7c | 17 | extern mbos CDU_OS; |
LvdK | 6:e0bf3b244d7c | 18 | extern int key_hit_ID; |
LvdK | 6:e0bf3b244d7c | 19 | |
LvdK | 6:e0bf3b244d7c | 20 | int button_info = 0; |
LvdK | 6:e0bf3b244d7c | 21 | |
LvdK | 6:e0bf3b244d7c | 22 | void init_buttons_Mbed() { |
LvdK | 6:e0bf3b244d7c | 23 | // set button bus as input : |
LvdK | 6:e0bf3b244d7c | 24 | button.input(); |
LvdK | 6:e0bf3b244d7c | 25 | // enable pull up resistors on inputs: |
LvdK | 6:e0bf3b244d7c | 26 | button.mode(PullUp); |
LvdK | 6:e0bf3b244d7c | 27 | } |
LvdK | 6:e0bf3b244d7c | 28 | |
LvdK | 6:e0bf3b244d7c | 29 | void scan_buttons_Mbed() { |
LvdK | 6:e0bf3b244d7c | 30 | static int pushed = false; |
LvdK | 6:e0bf3b244d7c | 31 | |
LvdK | 6:e0bf3b244d7c | 32 | switch (button) { |
LvdK | 6:e0bf3b244d7c | 33 | case 0xF : { |
LvdK | 6:e0bf3b244d7c | 34 | // nothing pushed, reset pushed flag: |
LvdK | 6:e0bf3b244d7c | 35 | pushed = false; |
LvdK | 6:e0bf3b244d7c | 36 | break; |
LvdK | 6:e0bf3b244d7c | 37 | } |
LvdK | 6:e0bf3b244d7c | 38 | case 0x7 : { |
LvdK | 6:e0bf3b244d7c | 39 | // button 1 pushed: |
LvdK | 6:e0bf3b244d7c | 40 | if ( pushed == false ) button_info = 33; |
LvdK | 6:e0bf3b244d7c | 41 | pushed = true; |
LvdK | 6:e0bf3b244d7c | 42 | break; |
LvdK | 6:e0bf3b244d7c | 43 | } |
LvdK | 6:e0bf3b244d7c | 44 | case 0xB : { |
LvdK | 6:e0bf3b244d7c | 45 | // button 2 pushed: |
LvdK | 6:e0bf3b244d7c | 46 | if ( pushed == false ) button_info = 34; |
LvdK | 6:e0bf3b244d7c | 47 | pushed = true; |
LvdK | 6:e0bf3b244d7c | 48 | break; |
LvdK | 6:e0bf3b244d7c | 49 | } |
LvdK | 6:e0bf3b244d7c | 50 | case 0xD : { |
LvdK | 6:e0bf3b244d7c | 51 | // button 3 pushed: |
LvdK | 6:e0bf3b244d7c | 52 | if ( pushed == false ) button_info = 12; |
LvdK | 6:e0bf3b244d7c | 53 | pushed = true; |
LvdK | 6:e0bf3b244d7c | 54 | break; |
LvdK | 6:e0bf3b244d7c | 55 | } |
LvdK | 6:e0bf3b244d7c | 56 | case 0xE : { |
LvdK | 6:e0bf3b244d7c | 57 | // button 4 pushed: |
LvdK | 6:e0bf3b244d7c | 58 | if ( pushed == false ) button_info = 21; |
LvdK | 6:e0bf3b244d7c | 59 | pushed = true; |
LvdK | 6:e0bf3b244d7c | 60 | break; |
LvdK | 6:e0bf3b244d7c | 61 | } |
LvdK | 6:e0bf3b244d7c | 62 | default : { |
LvdK | 6:e0bf3b244d7c | 63 | break; |
LvdK | 6:e0bf3b244d7c | 64 | } |
LvdK | 6:e0bf3b244d7c | 65 | } |
LvdK | 6:e0bf3b244d7c | 66 | if (button_info != 0) { |
LvdK | 6:e0bf3b244d7c | 67 | key_hit_ID = button_info; // : set global key_ID |
LvdK | 6:e0bf3b244d7c | 68 | button_info = 0; |
LvdK | 6:e0bf3b244d7c | 69 | CDU_OS.SetEvent(KEY_EVENT,SEND_KEYMESSAGE_TASK_ID); // : set KEY event ( = key pressed ) |
LvdK | 6:e0bf3b244d7c | 70 | led4 = !led4; // : toggle LED 4 to show button pressed |
LvdK | 6:e0bf3b244d7c | 71 | |
LvdK | 6:e0bf3b244d7c | 72 | } |
LvdK | 6:e0bf3b244d7c | 73 | } |