2017 hongo b team

Dependents:   I2C Alpha_Apper I2C

Committer:
Komazawa_sun
Date:
Thu Sep 21 04:37:15 2017 +0000
Revision:
1:8076e33b6ba1
Parent:
0:11209e14c06c
add_apper_body

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Komazawa_sun 0:11209e14c06c 1 #include "ApprI2CMaster.h"
Komazawa_sun 0:11209e14c06c 2
Komazawa_sun 0:11209e14c06c 3 ApprI2CMaster::ApprI2CMaster(alpha_a::ID my_id_, alpha_a::f_type my_type_, int addr_, I2C *master_)
Komazawa_sun 0:11209e14c06c 4 {
Komazawa_sun 0:11209e14c06c 5 _my_id = my_id_;
Komazawa_sun 0:11209e14c06c 6 _my_type = my_type_;
Komazawa_sun 0:11209e14c06c 7 _master = master_;
Komazawa_sun 0:11209e14c06c 8 _addr = addr_;
Komazawa_sun 1:8076e33b6ba1 9 res_data = 0;
Komazawa_sun 0:11209e14c06c 10 }
Komazawa_sun 0:11209e14c06c 11
Komazawa_sun 0:11209e14c06c 12 void ApprI2CMaster::write(uint8_t data)
Komazawa_sun 0:11209e14c06c 13 {
Komazawa_sun 0:11209e14c06c 14 char data_array[3] = {};
Komazawa_sun 0:11209e14c06c 15
Komazawa_sun 0:11209e14c06c 16 data_array[0] = _my_id;
Komazawa_sun 0:11209e14c06c 17 data_array[1] = _my_type;
Komazawa_sun 0:11209e14c06c 18 data_array[2] = (char)data;
Komazawa_sun 0:11209e14c06c 19
Komazawa_sun 0:11209e14c06c 20 _master->write(_addr, data_array, 3);
Komazawa_sun 0:11209e14c06c 21 }
Komazawa_sun 0:11209e14c06c 22
Komazawa_sun 0:11209e14c06c 23 int ApprI2CMaster::read()
Komazawa_sun 0:11209e14c06c 24 {
Komazawa_sun 0:11209e14c06c 25 char buffer[3] = {};
Komazawa_sun 0:11209e14c06c 26
Komazawa_sun 0:11209e14c06c 27 _master->read(_addr, buffer, 3);
Komazawa_sun 0:11209e14c06c 28
Komazawa_sun 0:11209e14c06c 29 if((alpha_a::ID)buffer[0] == _my_id)
Komazawa_sun 0:11209e14c06c 30 {
Komazawa_sun 0:11209e14c06c 31 switch((alpha_a::f_type)buffer[1])
Komazawa_sun 0:11209e14c06c 32 {
Komazawa_sun 0:11209e14c06c 33 case alpha_a::sig:
Komazawa_sun 0:11209e14c06c 34 res_data = (signed int)buffer[2];
Komazawa_sun 0:11209e14c06c 35 break;
Komazawa_sun 0:11209e14c06c 36 case alpha_a::unsig:
Komazawa_sun 0:11209e14c06c 37 res_data = (unsigned int)buffer[2];
Komazawa_sun 0:11209e14c06c 38 break;
Komazawa_sun 0:11209e14c06c 39 };
Komazawa_sun 0:11209e14c06c 40
Komazawa_sun 0:11209e14c06c 41 }
Komazawa_sun 1:8076e33b6ba1 42
Komazawa_sun 1:8076e33b6ba1 43 return res_data;
Komazawa_sun 0:11209e14c06c 44 }