voor willem test

Dependencies:   4DGL MODSERIAL mbed mbos

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?

UserRevisionLine numberNew 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 }