Libraries and Example of mbed parallel bus using I2C port expanders

Dependencies:   HDSP253X mbed PCF8574_Bus

Committer:
wim
Date:
Sat Aug 20 12:49:44 2011 +0000
Revision:
2:1dab1089c332
Child:
4:745fbbd5e4e5
First commit, testloop

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wim 2:1dab1089c332 1 /* MBED_ControlBus - Use the MBED Port pins for controlling the Bus
wim 2:1dab1089c332 2 * Copyright (c) 2011 Wim Huiskamp
wim 2:1dab1089c332 3 *
wim 2:1dab1089c332 4 * Released under the MIT License: http://mbed.org/license/mit
wim 2:1dab1089c332 5 *
wim 2:1dab1089c332 6 * version 0.2 Initial Release
wim 2:1dab1089c332 7 */
wim 2:1dab1089c332 8 #ifndef _MBED_CONTROLBUS_H
wim 2:1dab1089c332 9 #define _MBED_CONTROLBUS_H
wim 2:1dab1089c332 10
wim 2:1dab1089c332 11 //Enums for Control Bus
wim 2:1dab1089c332 12 #include "BusEnums.h"
wim 2:1dab1089c332 13
wim 2:1dab1089c332 14 //Debounce and Edge detecting stuff
wim 2:1dab1089c332 15 #include "PinDetect.h"
wim 2:1dab1089c332 16
wim 2:1dab1089c332 17 /** Create an MBED_ControlBus object connected to the specified Pins
wim 2:1dab1089c332 18 *
wim 2:1dab1089c332 19 * @param PinName WR the Write pin
wim 2:1dab1089c332 20 * @param PinName RD the Read pin
wim 2:1dab1089c332 21 * @param PinName DTR the databuffer Transmit/Receive direction pin
wim 2:1dab1089c332 22 * @param PinName CDBUF the databuffer enable pin
wim 2:1dab1089c332 23 * @param PinName CDINT the Keyboard interrupt pin
wim 2:1dab1089c332 24 * @param PinName FIRE the Manual Fire Unit pin
wim 2:1dab1089c332 25 */
wim 2:1dab1089c332 26 class MBED_ControlBus {
wim 2:1dab1089c332 27 public:
wim 2:1dab1089c332 28 MBED_ControlBus(PinName WR, PinName RD, PinName DTR, PinName CDBUF, PinName CDINT, PinName FIRE);
wim 2:1dab1089c332 29 void WR (Bit_Level wr_level);
wim 2:1dab1089c332 30 void RD (Bit_Level rd_level);
wim 2:1dab1089c332 31 void busdir (Bus_Dir buf_dir);
wim 2:1dab1089c332 32 void busctrl (Bus_Ena buf_ena, Bus_Dir buf_dir);
wim 2:1dab1089c332 33 Bit_Level CDINT ();
wim 2:1dab1089c332 34 Bit_Level FIRE ();
wim 2:1dab1089c332 35 protected:
wim 2:1dab1089c332 36 DigitalOut _WR; // Write pin
wim 2:1dab1089c332 37 DigitalOut _RD; // Read pin
wim 2:1dab1089c332 38 DigitalOut _DTR; // Databuffer Transmit/Receive direction pin
wim 2:1dab1089c332 39 DigitalOut _CDBUF; // Databuffer enable pin
wim 2:1dab1089c332 40
wim 2:1dab1089c332 41 //Plain digital input pin
wim 2:1dab1089c332 42 // DigitalIn _CDINT; // Keyboard interrupt pin
wim 2:1dab1089c332 43 // DigitalIn _FIRE; // Fire interrupt pin
wim 2:1dab1089c332 44
wim 2:1dab1089c332 45 //Plain digital interrupt pin
wim 2:1dab1089c332 46 // InterruptIn _CDINT; // Keyboard interrupt pin
wim 2:1dab1089c332 47 // InterruptIn _FIRE; // Fire interrupt pin
wim 2:1dab1089c332 48
wim 2:1dab1089c332 49 //Debounced and Edge detected input pin (Andy Kirkmans's Lib
wim 2:1dab1089c332 50 PinDetect _CDINT; // Keyboard interrupt pin
wim 2:1dab1089c332 51 PinDetect _FIRE; // Fire interrupt pin
wim 2:1dab1089c332 52
wim 2:1dab1089c332 53 bool _CDINT_detected;
wim 2:1dab1089c332 54 bool _FIRE_detected;
wim 2:1dab1089c332 55
wim 2:1dab1089c332 56 void _CDINT_activated();
wim 2:1dab1089c332 57 void _CDINT_deactivated();
wim 2:1dab1089c332 58 void _CDINT_init();
wim 2:1dab1089c332 59
wim 2:1dab1089c332 60 void _FIRE_activated();
wim 2:1dab1089c332 61 void _FIRE_deactivated();
wim 2:1dab1089c332 62 void _FIRE_init();
wim 2:1dab1089c332 63
wim 2:1dab1089c332 64 void _init();
wim 2:1dab1089c332 65 };
wim 2:1dab1089c332 66
wim 2:1dab1089c332 67 #endif