Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
MCP.h
00001 #ifndef MCP_H_ 00002 #define MCP_H_ 00003 00004 #include "mbed.h" 00005 #include "MCP23017.h" 00006 00007 #define SDA PB_7 00008 #define SCL PB_6 00009 00010 #define MCP_ADDRESS 0x40 00011 00012 #define GPA0 0 00013 #define GPA1 1 00014 #define GPA2 2 00015 #define GPA3 3 00016 #define GPA4 4 00017 #define GPA5 5 00018 #define GPA6 6 00019 #define GPA7 7 00020 #define GPB0 8 00021 #define GPB1 9 00022 #define GPB2 10 00023 #define GPB3 11 00024 #define GPB4 12 00025 #define GPB5 13 00026 #define GPB6 14 00027 #define GPB7 15 00028 00029 typedef enum { 00030 OUTPUT, 00031 INPUT, 00032 INPUT_PULLUP, 00033 }pin_mode; 00034 00035 typedef struct byte{ 00036 uint8_t port_A; 00037 uint8_t port_B; 00038 }byte; 00039 00040 typedef union { 00041 byte port; 00042 uint16_t all; 00043 }mcp_data; 00044 00045 class MCP { 00046 public: 00047 /* MCP class constracter 00048 / deffult Input 00049 / */ 00050 MCP(PinName sda, PinName scl, uint8_t device_address); 00051 // MCP pin define * pin number is 0 ~ 15 00052 void PinMode(uint8_t pin, pin_mode mode); 00053 // MCP DigitalWrite * pin number is 0 ~ 15 00054 void Write(uint8_t pin, bool signal); 00055 // MCP DigitalRead * pin number is 0 ~ 15 00056 bool Read(uint8_t pin); 00057 // MCP initialize 00058 void Initialize(void); 00059 // MCP register update and read new data 00060 void Update(void); 00061 00062 private: 00063 I2C i2c; 00064 MCP23017 mcp; 00065 char _read_opcode; 00066 char _write_opcode; 00067 00068 mcp_data _iodir_data; 00069 mcp_data _pull_data; 00070 mcp_data _read_data; 00071 mcp_data _write_data; 00072 00073 void _Write(uint8_t address, uint8_t data); 00074 void _Read(uint8_t address, uint8_t data); 00075 00076 void I2Crestart(void); 00077 00078 }; 00079 00080 #endif //I2C_H_
Generated on Mon Jul 18 2022 21:54:58 by
1.7.2