2017 hongo b team
ApprI2CSlave.cpp
- Committer:
- Komazawa_sun
- Date:
- 2017-09-08
- Revision:
- 1:946468f68668
- Parent:
- 0:4eb718005c1b
File content as of revision 1:946468f68668:
#include "ApprI2CSlave.h" ApprI2CSlave::ApprI2CSlave(alpha_a::ID my_id_, alpha_a::f_type my_type_, int addr_, I2CSlave *slave_) { _my_id = my_id_; _my_type = my_type_; _slave = slave_; _slave->address(addr_); res_data = 0; } void ApprI2CSlave::write(uint8_t data) { char data_array[3] = {}; data_array[0] = _my_id; data_array[1] = _my_type; data_array[2] = (char)data; if(I2CSlave::ReadAddressed == _slave->receive()) _slave->write(data_array, 3); } int ApprI2CSlave::read() { char buffer[3] = {}; if(I2CSlave::WriteAddressed == _slave->receive()) { //printf("receive_now\r\n"); _slave->read(buffer, 3); if((alpha_a::ID)buffer[0] == _my_id) { switch((alpha_a::f_type)buffer[1]) { case alpha_a::sig: res_data = (signed int)buffer[2]; break; case alpha_a::unsig: res_data = (unsigned int)buffer[2]; break; }; } } return res_data; }