YMotorDriverShooter.cpp
- Committer:
- inst
- Date:
- 2015-08-23
- Revision:
- 0:9b3bf538a693
- Child:
- 1:b6face630ed3
File content as of revision 0:9b3bf538a693:
#include "YMotorDriverShooter.h" #include "YMotorDriverBase.h" #include "mbed.h" const PinName YMotorDriverShooter::mRelayDriveDoutPinName[] = { dp6, dp13, dp14 }; YMotorDriverShooter::YMotorDriverShooter( char address ) : YMotorDriverBase( address ){ mRelayDriveDout = new DigitalOut*[ 3 ]; for ( int i = 0; i < 3; ++i ){ mRelayDriveDout[ i ] = new DigitalOut( mRelayDriveDoutPinName[ i ] ); } mActionType = STOP; } void YMotorDriverShooter::update(){ switch ( mI2C->receive() ){ case I2CSlave::ReadAddressed:{ char buf = mActionType; mI2C->write( &buf, 1 ); break; } case I2CSlave::WriteGeneral: break; case I2CSlave::WriteAddressed:{ char buf; mI2C->read( &buf, 1 ); mActionType = static_cast< ShooterActionType >( buf ); break; } case I2CSlave::NoData: break; } write(); } void YMotorDriverShooter::write(){ for ( int i = 0; i < 3; ++i ){ mRelayDriveDout[ i ]->write( ( mActionType >> i ) & 0x01 ); } }