Added HangmanGame class, but does not work yet

Dependencies:   SDFileSystem app epson mbed msp430 pl tests

Committer:
markpsymonds
Date:
Mon Dec 04 20:15:18 2017 +0000
Revision:
1:a5ec6f9dcf0d
Parent:
0:fa7450a43b99
Fixed most compile issues in hangman.cpp/.h.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
group-FlexBook 0:fa7450a43b99 1 //
group-FlexBook 0:fa7450a43b99 2 // Filename: mcp23s17.h
group-FlexBook 0:fa7450a43b99 3 //
group-FlexBook 0:fa7450a43b99 4 // Flexbook Hardware Abstraction Layer.
group-FlexBook 0:fa7450a43b99 5 //
group-FlexBook 0:fa7450a43b99 6
group-FlexBook 0:fa7450a43b99 7 #ifndef MCP23S17_H
group-FlexBook 0:fa7450a43b99 8 #define MCP23S17_H
group-FlexBook 0:fa7450a43b99 9
group-FlexBook 0:fa7450a43b99 10 #include "mbed.h"
group-FlexBook 0:fa7450a43b99 11
group-FlexBook 0:fa7450a43b99 12 namespace HAL {
group-FlexBook 0:fa7450a43b99 13
group-FlexBook 0:fa7450a43b99 14 /**
group-FlexBook 0:fa7450a43b99 15 * @brief MCP23S17 register addresses in bank 0 mode.
group-FlexBook 0:fa7450a43b99 16 */
group-FlexBook 0:fa7450a43b99 17 enum REG_MCP23S17
group-FlexBook 0:fa7450a43b99 18 {
group-FlexBook 0:fa7450a43b99 19 IODIRA = 0x00,
group-FlexBook 0:fa7450a43b99 20 IODIRB = 0x01,
group-FlexBook 0:fa7450a43b99 21 IPOLA = 0x02,
group-FlexBook 0:fa7450a43b99 22 IPOLB = 0x03,
group-FlexBook 0:fa7450a43b99 23 GPINTENA = 0x04,
group-FlexBook 0:fa7450a43b99 24 GPINTENB = 0x05,
group-FlexBook 0:fa7450a43b99 25 DEFVALA = 0x06,
group-FlexBook 0:fa7450a43b99 26 DEFVALB = 0x07,
group-FlexBook 0:fa7450a43b99 27 INTCONA = 0x08,
group-FlexBook 0:fa7450a43b99 28 INTCONB = 0x09,
group-FlexBook 0:fa7450a43b99 29 IOCON1 = 0x0a,
group-FlexBook 0:fa7450a43b99 30 IOCON2 = 0x0b,
group-FlexBook 0:fa7450a43b99 31 GPPUA = 0x0c,
group-FlexBook 0:fa7450a43b99 32 GPPUB = 0x0d,
group-FlexBook 0:fa7450a43b99 33 INTFA = 0x0e,
group-FlexBook 0:fa7450a43b99 34 INTFB = 0x0f,
group-FlexBook 0:fa7450a43b99 35 INTCAPA = 0x10,
group-FlexBook 0:fa7450a43b99 36 INTCAPB = 0x11,
group-FlexBook 0:fa7450a43b99 37 GPIOA = 0x12,
group-FlexBook 0:fa7450a43b99 38 GPIOB = 0x13,
group-FlexBook 0:fa7450a43b99 39 OLATA = 0x14,
group-FlexBook 0:fa7450a43b99 40 OLATB = 0x15
group-FlexBook 0:fa7450a43b99 41 };
group-FlexBook 0:fa7450a43b99 42
group-FlexBook 0:fa7450a43b99 43 /**
group-FlexBook 0:fa7450a43b99 44 * @brief Microchip MCP23S17 encapsulation.
group-FlexBook 0:fa7450a43b99 45 * This chip is an SPI connected I/O expander.
group-FlexBook 0:fa7450a43b99 46 *
group-FlexBook 0:fa7450a43b99 47 * Example usage:
group-FlexBook 0:fa7450a43b99 48 <pre>
group-FlexBook 0:fa7450a43b99 49 SPI spi(p5, p6, p7);
group-FlexBook 0:fa7450a43b99 50 DigitalOut cs(p19);
group-FlexBook 0:fa7450a43b99 51 MCP23S17 mcp23s17(0x00, spi, cs);
group-FlexBook 0:fa7450a43b99 52 ...
group-FlexBook 0:fa7450a43b99 53 mcp23s17.Write(GPIOB, 0xaa);
group-FlexBook 0:fa7450a43b99 54 </pre>
group-FlexBook 0:fa7450a43b99 55 *
group-FlexBook 0:fa7450a43b99 56 * The MCP23S17 uses pins 5, 6, 7 (SPI MOSI, MISO, SCK) and 19 (CS) and
group-FlexBook 0:fa7450a43b99 57 * the write command sets GPIOB to 0xaa. The chip address is 0x00.
group-FlexBook 0:fa7450a43b99 58 *
group-FlexBook 0:fa7450a43b99 59 * Note that this code example does not cover the setup of the chip
group-FlexBook 0:fa7450a43b99 60 * configuration registers.
group-FlexBook 0:fa7450a43b99 61 */
group-FlexBook 0:fa7450a43b99 62 class MCP23S17
group-FlexBook 0:fa7450a43b99 63 {
group-FlexBook 0:fa7450a43b99 64 public:
group-FlexBook 0:fa7450a43b99 65 /**
group-FlexBook 0:fa7450a43b99 66 * @brief Constructor.
group-FlexBook 0:fa7450a43b99 67 * @param address The SPI address offset of the chip.
group-FlexBook 0:fa7450a43b99 68 * @param SPI the SPI to use for communication.
group-FlexBook 0:fa7450a43b99 69 * @param cs The chip select pin.
group-FlexBook 0:fa7450a43b99 70 */
group-FlexBook 0:fa7450a43b99 71 MCP23S17(int address, SPI &spi, DigitalOut &cs);
group-FlexBook 0:fa7450a43b99 72
group-FlexBook 0:fa7450a43b99 73 /**
group-FlexBook 0:fa7450a43b99 74 * @brief Read a register.
group-FlexBook 0:fa7450a43b99 75 * @param address The SPI address of the MCP23S17.
group-FlexBook 0:fa7450a43b99 76 * @param reg The register to read.
group-FlexBook 0:fa7450a43b99 77 * @return The register value.
group-FlexBook 0:fa7450a43b99 78 */
group-FlexBook 0:fa7450a43b99 79 int Read(REG_MCP23S17 reg);
group-FlexBook 0:fa7450a43b99 80
group-FlexBook 0:fa7450a43b99 81 /**
group-FlexBook 0:fa7450a43b99 82 * @brief Write a register.
group-FlexBook 0:fa7450a43b99 83 * @param address The SPI address of the MCP23S17.
group-FlexBook 0:fa7450a43b99 84 * @param reg The register to write.
group-FlexBook 0:fa7450a43b99 85 * @param value The value to write to the register.
group-FlexBook 0:fa7450a43b99 86 */
group-FlexBook 0:fa7450a43b99 87 void Write(REG_MCP23S17 reg, int value);
group-FlexBook 0:fa7450a43b99 88
group-FlexBook 0:fa7450a43b99 89 private:
group-FlexBook 0:fa7450a43b99 90 int address;
group-FlexBook 0:fa7450a43b99 91 SPI &spi;
group-FlexBook 0:fa7450a43b99 92 DigitalOut &cs;
group-FlexBook 0:fa7450a43b99 93 };
group-FlexBook 0:fa7450a43b99 94
group-FlexBook 0:fa7450a43b99 95 } // End HAL namespace.
group-FlexBook 0:fa7450a43b99 96
group-FlexBook 0:fa7450a43b99 97 #endif // MCP23S17_H