Libraries and Example of mbed parallel bus using I2C port expanders

Dependencies:   HDSP253X mbed PCF8574_Bus

Committer:
wim
Date:
Tue Aug 23 20:26:05 2011 +0000
Revision:
4:745fbbd5e4e5
Parent:
2:1dab1089c332
Child:
5:38b853bb1afa
Test version for breadboard, using STANAG Edits

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wim 2:1dab1089c332 1 /* Keyboard - Keyboard and Fire Switch control
wim 2:1dab1089c332 2 *
wim 2:1dab1089c332 3 * Copyright (c) 2011 Wim Huiskamp
wim 2:1dab1089c332 4 *
wim 2:1dab1089c332 5 * Released under the MIT License: http://mbed.org/license/mit
wim 2:1dab1089c332 6 *
wim 2:1dab1089c332 7 * version 0.2 Initial Release
wim 2:1dab1089c332 8 */
wim 2:1dab1089c332 9 #ifndef _KEYBOARD_H
wim 2:1dab1089c332 10 #define _KEYBOARD_H
wim 2:1dab1089c332 11
wim 2:1dab1089c332 12 /*****************************************************************************/
wim 2:1dab1089c332 13 /********************* DEFINITIONS FOR KEYBOARD ***************************/
wim 2:1dab1089c332 14 /*****************************************************************************/
wim 2:1dab1089c332 15
wim 2:1dab1089c332 16 // Definitions for Keyboard Latch
wim 2:1dab1089c332 17 // NOTE: NEED TO CHECK THESE !!!!
wim 2:1dab1089c332 18 #define D_KEYBOARD_NONE 0x00
wim 2:1dab1089c332 19 #define D_KEYBOARD_MODE 0x01
wim 2:1dab1089c332 20 #define D_KEYBOARD_EDIT_PATH 0x02
wim 2:1dab1089c332 21 #define D_KEYBOARD_BRIGHT 0x03
wim 2:1dab1089c332 22 #define D_KEYBOARD_NOTUSED_4 0x04
wim 2:1dab1089c332 23 #define D_KEYBOARD_GRAT_RT 0x05
wim 2:1dab1089c332 24 #define D_KEYBOARD_F_L_UP 0x06
wim 2:1dab1089c332 25 #define D_KEYBOARD_NOTUSED_7 0x07
wim 2:1dab1089c332 26
wim 4:745fbbd5e4e5 27 // Masks for keyboard codes, bit 4-7 not used
wim 4:745fbbd5e4e5 28 #define D_KEYBOARD_MASK 0x0F
wim 2:1dab1089c332 29
wim 2:1dab1089c332 30 //Enums for Keyboard codes
wim 2:1dab1089c332 31 enum Key_Code { KEY_NONE, KEY_MODE, KEY_EDIT_PATH, KEY_BRIGHT, KEY_GRAT_RT, KEY_F_L_UP, KEY_FIRE };
wim 2:1dab1089c332 32
wim 2:1dab1089c332 33
wim 2:1dab1089c332 34 /** Create a Keyboard object connected to the proper busses
wim 2:1dab1089c332 35 *
wim 2:1dab1089c332 36 * @param PCF8574_DataBus data databus to connect to
wim 2:1dab1089c332 37 * @param PCF8574_EnableBus enable enablebus to connect to
wim 2:1dab1089c332 38 * @param MBED_ControlBus control controlbus to connect to
wim 2:1dab1089c332 39 */
wim 2:1dab1089c332 40 class Keyboard {
wim 2:1dab1089c332 41 public:
wim 2:1dab1089c332 42 Keyboard(PCF8574_DataBus &databus,
wim 2:1dab1089c332 43 PCF8574_EnableBus &enablebus, MBED_ControlBus &controlbus);
wim 2:1dab1089c332 44 bool readable ();
wim 2:1dab1089c332 45 Key_Code getkey();
wim 2:1dab1089c332 46
wim 2:1dab1089c332 47 protected:
wim 2:1dab1089c332 48 PCF8574_DataBus &_databus;
wim 2:1dab1089c332 49 PCF8574_EnableBus &_enablebus;
wim 2:1dab1089c332 50 MBED_ControlBus &_controlbus;
wim 2:1dab1089c332 51 bool _KeyReady;
wim 2:1dab1089c332 52 Key_Code _KeyCode;
wim 2:1dab1089c332 53
wim 2:1dab1089c332 54 uint8_t _read();
wim 2:1dab1089c332 55 void _init();
wim 2:1dab1089c332 56 };
wim 2:1dab1089c332 57
wim 2:1dab1089c332 58
wim 2:1dab1089c332 59 #endif
wim 2:1dab1089c332 60 /*****************************************************************************/
wim 2:1dab1089c332 61 /****************************** END OF FILE ********************************/
wim 2:1dab1089c332 62 /*****************************************************************************/
wim 2:1dab1089c332 63