Miya Miyagawa / Mbed 2 deprecated NRP2020_main

Dependencies:   mbed MCP23017

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers MCP.h Source File

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_