Create this program
Dependencies: mbed HCSR04 HMC6352 PID TextLCD
communication.h
- Committer:
- KoiShin_Sakana
- Date:
- 2015-08-06
- Revision:
- 2:a8bbf677e774
- Child:
- 3:901d18b901b4
File content as of revision 2:a8bbf677e774:
/** * @file : communication.h (1.0) * @brief : manage communication * @author : Shinnosuke KOIKE * @date : 2015/08/06 */ #ifndef COMMUNICATION_H #define COMMUNICATION_H #include "mbed.h" class CommuMaster { public: CommuMaster(PinName sda, PinName scl); void receiveData(int correctFrequency, char addr, char data[], char length); private: I2C* i2cmaster; }; class CommuSlave { public: CommuSlave(PinName sda, PinName scl); void sendData(int correctFrequency, char addr, char data[], char length); private: I2CSlave* i2cslave; }; // initialize CommuMaster::CommuMaster(PinName sda, PinName scl) { i2cmaster = new I2C(sda, scl); } // receive some data void CommuMaster::receiveData(int correctFrequency, char addr, char data[], char length) { i2cmaster->frequency(correctFrequency); i2cmaster->read(addr | 1, data, length, false); } // initialize CommuSlave::CommuSlave(PinName sda, PinName scl) { i2cslave = new I2CSlave(sda, scl); } // send some data void CommuSlave::sendData(int correctFrequency, char addr, char data[], char length) { i2cslave->frequency(correctFrequency); i2cslave->address(addr); i2cslave->write(data, length); } #endif /** * example program(master) #include "mbed.h" #define DATA_NUM 8 int main(void) { CommuMaster master(D5, D6); char addr = 0xA0; int freq = 2000; char data[DATA_NUM]; char length = 8; while (1) { master.receiveData(freq, addr, data, length); for (int i = 0; i < DATA_NUM; i++) { pc.printf("%d ", data[i]); } pc.putchar('\n'); } } * example program(slave) #include "mbed.h" int main(void) { CommuSlave slave(D5, D6); char addr = 0xA0; int freq = 2000; char data[8] = {1, 1, 0, 0, 0, 0, 0, 1}; char length; while (1) { slave.sendData(freq, addr, data, length); } } */