voor willem test

Dependencies:   4DGL MODSERIAL mbed mbos

buttontest.cpp

Committer:
LvdK
Date:
2013-01-29
Revision:
6:e0bf3b244d7c

File content as of revision 6:e0bf3b244d7c:

// 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
        
    }  
}