MCP23S17 Test

Dependencies:   MCP23S17 mbed mbed-rtos

Committer:
ryood
Date:
Fri Oct 28 06:09:46 2016 +0000
Revision:
1:5321e8f5b339
Parent:
0:5610193796b3
Child:
2:c8c30a78bbb3
Add: "rtos.h" and SPI3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryood 0:5610193796b3 1 /*
ryood 0:5610193796b3 2 * MCP23S17 Test
ryood 0:5610193796b3 3 *
ryood 0:5610193796b3 4 * https://developer.mbed.org/users/romilly/code/MCP23S17/
ryood 0:5610193796b3 5 *
ryood 0:5610193796b3 6 * Created: 2016.10.28
ryood 0:5610193796b3 7 *
ryood 0:5610193796b3 8 */
ryood 0:5610193796b3 9
ryood 0:5610193796b3 10 #include "mbed.h"
ryood 1:5321e8f5b339 11 #include "rtos.h"
ryood 0:5610193796b3 12 #include "MCP23S17.h"
ryood 0:5610193796b3 13
ryood 0:5610193796b3 14 #define OPCODE (0x40)
ryood 0:5610193796b3 15
ryood 1:5321e8f5b339 16 SPI Spi(PC_12, PC_11, PC_10); // mosi, miso, sclk
ryood 1:5321e8f5b339 17 //SPI Spi(PA_7, PA_6, PA_5); // mosi, miso, sclk
ryood 0:5610193796b3 18
ryood 0:5610193796b3 19 // MCP23S17(SPI& spi, PinName ncs, char writeOpcode);
ryood 1:5321e8f5b339 20 MCP23S17 Mcp23s17(Spi, PD_2, OPCODE);
ryood 0:5610193796b3 21
ryood 0:5610193796b3 22 int main()
ryood 0:5610193796b3 23 {
ryood 0:5610193796b3 24 printf("\r\n\n*** MCP23S17 Test ***\r\n");
ryood 0:5610193796b3 25
ryood 0:5610193796b3 26 // PORTA output
ryood 0:5610193796b3 27 Mcp23s17.direction(PORT_A, 0x00);
ryood 0:5610193796b3 28
ryood 0:5610193796b3 29 // PORTB input
ryood 0:5610193796b3 30 Mcp23s17.direction(PORT_B, 0xFF);
ryood 0:5610193796b3 31 // PORTB pull-up
ryood 0:5610193796b3 32 Mcp23s17.configurePullUps(PORT_B, 0xFF);
ryood 0:5610193796b3 33
ryood 0:5610193796b3 34 // LED Check
ryood 0:5610193796b3 35 for (int i = 0; i < 8; i++) {
ryood 0:5610193796b3 36 Mcp23s17.write(PORT_A, (1 << i));
ryood 0:5610193796b3 37 wait(0.2);
ryood 0:5610193796b3 38 }
ryood 0:5610193796b3 39 Mcp23s17.write(PORT_A, 0x00);
ryood 1:5321e8f5b339 40
ryood 0:5610193796b3 41 while (true) {
ryood 0:5610193796b3 42 char data = ~Mcp23s17.read(PORT_B);
ryood 0:5610193796b3 43 Mcp23s17.write(PORT_A, data);
ryood 0:5610193796b3 44
ryood 1:5321e8f5b339 45 //printf("%02x\r\n", data);
ryood 0:5610193796b3 46 }
ryood 0:5610193796b3 47 }
ryood 0:5610193796b3 48