Libraries and Example of mbed parallel bus using I2C port expanders
Dependencies: HDSP253X mbed PCF8574_Bus
Status_Display.h
- Committer:
- wim
- Date:
- 2011-08-20
- Revision:
- 2:1dab1089c332
- Child:
- 5:38b853bb1afa
File content as of revision 2:1dab1089c332:
/* Status_Display - LED status indicators * Copyright (c) 2011 Wim Huiskamp * * Released under the MIT License: http://mbed.org/license/mit * * version 0.2 Initial Release */ #ifndef _STATUS_DISPLAY_H #define _STATUS_DISPLAY_H //Useful stuff to simplify porting of some third party software #include "Utils.h" /*****************************************************************************/ /********************* DEFINITIONS FOR STATUS DISPLAY ** ********************/ /*****************************************************************************/ // Specific delays for display operation #define STATUS_1TCY_WAIT_MS 1 // Definitions for Latch1 of Status LEDs #define D_STATUS_LED_MULT 0x01 #define D_STATUS_LED_LASER 0x02 #define D_STATUS_LED_BATT 0x04 #define D_STATUS_LED_TEMP 0x08 #define D_STATUS_LED_ENRGY 0x10 #define D_STATUS_LED_NOTUSED_15 0x20 #define D_STATUS_LED_NOTUSED_16 0x40 #define D_STATUS_BACKLIGHT 0x80 // Definitions for Latch2 of Status LEDs #define D_STATUS_LED_NOTUSED_20 0x01 #define D_STATUS_LED_CODE 0x02 #define D_STATUS_LED_RANGE 0x04 #define D_STATUS_LED_DESIG 0x08 #define D_STATUS_LED_ADDR 0x10 #define D_STATUS_LED_FREQ 0x20 #define D_STATUS_LED_PATH 0x40 #define D_STATUS_LED_NOTUSED_27 0x80 // Definitions for LatchBrightness of Status LEDs // Value indicates cd/m2 #define D_STATUS_LED_BRIGHT_000 0x00 #define D_STATUS_LED_BRIGHT_022 0x01 #define D_STATUS_LED_BRIGHT_053 0x02 #define D_STATUS_LED_BRIGHT_112 0x03 #define D_STATUS_LED_BRIGHT_253 0x04 #define D_STATUS_LED_BRIGHT_570 0x05 #define D_STATUS_LED_BRIGHT_129 0x06 #define D_STATUS_LED_BRIGHT_360 0x07 // control word masks for Status LEDs #define STATUS_LED_BRIGHT_MASK 0x07 // Display brightness modes #define D_STATUS_LED_BRIGHT_OFF D_STATUS_LED_BRIGHT_000 #define D_STATUS_LED_BRIGHT_LOW D_STATUS_LED_BRIGHT_053 #define D_STATUS_LED_BRIGHT_MED D_STATUS_LED_BRIGHT_570 #define D_STATUS_LED_BRIGHT_HGH D_STATUS_LED_BRIGHT_360 // default display brightness #define D_STATUS_LED_BRIGHT_DEF D_STATUS_LED_BRIGHT_LOW //Enums for Status LEDs enum LED_Pin { LED_MULT, LED_LASER, LED_BATT, LED_TEMP, LED_ENRGY, LED_CODE, LED_RANGE, LED_DESIG, LED_ADDR, LED_FREQ, LED_PATH }; enum LED_State { LED_ON, LED_OFF}; //Enums for Brightness enum Brightness { BRT_OFF, BRT_LOW, BRT_MED, BRT_HIGH }; /** Create a Status_Display object connected to the proper busses * * @param PCF8574_DataBus data databus to connect to * @param PCF8574_EnableBus enable enablebus to connect to * @param MBED_ControlBus control controlbus to connect to */ class Status_Display { public: Status_Display(PCF8574_DataBus &databus, PCF8574_EnableBus &enablebus, MBED_ControlBus &controlbus); void lamptest (LED_State led_state); void LED (LED_Pin led_pin, LED_State led_state); void NoGo(LED_State NoGo_state); void backlight (LED_State backlight_state); void set_brightness(uint8_t brightness); void set_brightness(Brightness brightness); protected: PCF8574_DataBus &_databus; PCF8574_EnableBus &_enablebus; MBED_ControlBus &_controlbus; uint8_t _latch1; uint8_t _latch2; uint8_t _brightness; // void _write_latch1(char data); // void _write_latch2(char data); void _write_latch1(); void _write_latch2(); void _write_latchbrightness(); void _init(); }; #endif /*****************************************************************************/ /****************************** END OF FILE ********************************/ /*****************************************************************************/