Added HangmanGame class, but does not work yet
Dependencies: SDFileSystem app epson mbed msp430 pl tests
mcp23s17.h@1:a5ec6f9dcf0d, 2017-12-04 (annotated)
- 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?
User | Revision | Line number | New 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 |