Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of VCNL4000 by
VCNL4000.cpp@4:3c57a6048f2d, 2016-07-28 (annotated)
- Committer:
- joshvaldes
- Date:
- Thu Jul 28 03:07:48 2016 +0000
- Revision:
- 4:3c57a6048f2d
- Parent:
- 3:8f8caebe76cc
plunger jumper eliminated;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bengo | 0:1720792a6e28 | 1 | #include "VCNL4000.h" |
bengo | 0:1720792a6e28 | 2 | |
bengo | 0:1720792a6e28 | 3 | const int VCNL4000::VCNL4000address = 0x13; |
bengo | 0:1720792a6e28 | 4 | const int VCNL4000::VCNL4000regAddr = 0x80; |
bengo | 0:1720792a6e28 | 5 | const int VCNL4000::Command = 0x0; |
bengo | 0:1720792a6e28 | 6 | const int VCNL4000::ProdIdRevision = 0x1; |
bengo | 0:1720792a6e28 | 7 | const int VCNL4000::IRLedCurrent = 0x3; |
bengo | 0:1720792a6e28 | 8 | const int VCNL4000::AmbientLightParam = 0x4; |
bengo | 0:1720792a6e28 | 9 | const int VCNL4000::AmbientLightMsb = 0x5; |
bengo | 0:1720792a6e28 | 10 | const int VCNL4000::AmbientLightLsb = 0x6; |
bengo | 0:1720792a6e28 | 11 | const int VCNL4000::ProximityMsb = 0x7; |
bengo | 0:1720792a6e28 | 12 | const int VCNL4000::ProximityLsb = 0x8; |
bengo | 0:1720792a6e28 | 13 | const int VCNL4000::ProximitySigFreq = 0x9; |
bengo | 0:1720792a6e28 | 14 | const int VCNL4000::ProxymityModulationTime = 0xa; |
bengo | 0:1720792a6e28 | 15 | |
joshvaldes | 4:3c57a6048f2d | 16 | int countIt = 0; |
joshvaldes | 4:3c57a6048f2d | 17 | extern bool isPlungerAlive; |
joshvaldes | 3:8f8caebe76cc | 18 | |
bengo | 0:1720792a6e28 | 19 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 20 | VCNL4000::VCNL4000( PinName sda, PinName scl ) : _i2c( sda, scl ) { |
joshvaldes | 4:3c57a6048f2d | 21 | /* |
bengo | 0:1720792a6e28 | 22 | int prodId = getProductId(); |
bengo | 0:1720792a6e28 | 23 | int prodRev = getProductRevision(); |
bengo | 0:1720792a6e28 | 24 | |
bengo | 0:1720792a6e28 | 25 | if( prodId == 1 && prodRev == 1 ) { |
bengo | 0:1720792a6e28 | 26 | _status = 0; |
bengo | 0:1720792a6e28 | 27 | } |
bengo | 0:1720792a6e28 | 28 | else { |
bengo | 0:1720792a6e28 | 29 | _status = 1; |
bengo | 0:1720792a6e28 | 30 | } |
joshvaldes | 4:3c57a6048f2d | 31 | */ |
joshvaldes | 4:3c57a6048f2d | 32 | _status = 0; |
bengo | 0:1720792a6e28 | 33 | } |
bengo | 0:1720792a6e28 | 34 | |
bengo | 0:1720792a6e28 | 35 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 36 | VCNL4000::~VCNL4000( void ) { |
bengo | 0:1720792a6e28 | 37 | } |
bengo | 0:1720792a6e28 | 38 | |
bengo | 0:1720792a6e28 | 39 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 40 | int VCNL4000::registerRead( int reg ) { |
bengo | 0:1720792a6e28 | 41 | |
bengo | 0:1720792a6e28 | 42 | _bytes[0] = ( reg & 0xff ); |
bengo | 0:1720792a6e28 | 43 | _status = _i2c.write( ( VCNL4000address << 1 ), _bytes, 1 ); |
bengo | 0:1720792a6e28 | 44 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 45 | _status = _i2c.read( ( ( VCNL4000address << 1 ) + 1 ), _bytes, 1 ); |
bengo | 0:1720792a6e28 | 46 | return( _bytes[0] ); |
bengo | 0:1720792a6e28 | 47 | } |
bengo | 0:1720792a6e28 | 48 | return( 0 ); |
bengo | 0:1720792a6e28 | 49 | } |
bengo | 0:1720792a6e28 | 50 | |
bengo | 0:1720792a6e28 | 51 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 52 | void VCNL4000::registerWrite( int reg, unsigned char data ) { |
bengo | 0:1720792a6e28 | 53 | |
bengo | 0:1720792a6e28 | 54 | _bytes[0] = reg & 0xff; |
bengo | 0:1720792a6e28 | 55 | _bytes[1] = data & 0xff; |
bengo | 0:1720792a6e28 | 56 | _status = _i2c.write( VCNL4000address << 1, _bytes, 2 ); |
bengo | 0:1720792a6e28 | 57 | |
bengo | 0:1720792a6e28 | 58 | } |
bengo | 0:1720792a6e28 | 59 | |
bengo | 0:1720792a6e28 | 60 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 61 | int VCNL4000::getProximity( void ) { |
bengo | 0:1720792a6e28 | 62 | |
bengo | 0:1720792a6e28 | 63 | startProximityMeasurement(); |
bengo | 0:1720792a6e28 | 64 | while( !proximityDataReady() ) { |
joshvaldes | 1:73ff30fa5ee0 | 65 | wait(0.01);//was 0.1 |
joshvaldes | 4:3c57a6048f2d | 66 | countIt++; |
joshvaldes | 4:3c57a6048f2d | 67 | if (countIt > 100){ |
joshvaldes | 4:3c57a6048f2d | 68 | countIt = 0; |
joshvaldes | 4:3c57a6048f2d | 69 | isPlungerAlive = false; |
joshvaldes | 4:3c57a6048f2d | 70 | return 0; |
joshvaldes | 4:3c57a6048f2d | 71 | } |
bengo | 0:1720792a6e28 | 72 | } |
bengo | 0:1720792a6e28 | 73 | _data = registerRead( VCNL4000regAddr + ProximityMsb ) << 8; |
bengo | 0:1720792a6e28 | 74 | int status = _status; |
bengo | 0:1720792a6e28 | 75 | _data += registerRead( VCNL4000regAddr + ProximityLsb ); |
bengo | 0:1720792a6e28 | 76 | _status = _status | status; |
joshvaldes | 4:3c57a6048f2d | 77 | countIt = 0; |
joshvaldes | 4:3c57a6048f2d | 78 | isPlungerAlive = true; |
bengo | 0:1720792a6e28 | 79 | return( _data ); |
bengo | 0:1720792a6e28 | 80 | } |
bengo | 0:1720792a6e28 | 81 | |
bengo | 0:1720792a6e28 | 82 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 83 | int VCNL4000::getAmbientLight( void ) { |
bengo | 0:1720792a6e28 | 84 | startAmbientLightMeasurement(); |
bengo | 0:1720792a6e28 | 85 | while( !ambientLightDataReady() ) { |
joshvaldes | 1:73ff30fa5ee0 | 86 | wait(0.01); //was 0.1 |
bengo | 0:1720792a6e28 | 87 | } |
bengo | 0:1720792a6e28 | 88 | _data = registerRead( VCNL4000regAddr + AmbientLightMsb ) << 8; |
bengo | 0:1720792a6e28 | 89 | int status = _status; |
bengo | 0:1720792a6e28 | 90 | _data += registerRead( VCNL4000regAddr + AmbientLightLsb ); |
bengo | 0:1720792a6e28 | 91 | _status = _status | status; |
bengo | 0:1720792a6e28 | 92 | return( _data ); |
bengo | 0:1720792a6e28 | 93 | } |
bengo | 0:1720792a6e28 | 94 | |
bengo | 0:1720792a6e28 | 95 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 96 | int VCNL4000::getProductId( void ) { |
joshvaldes | 2:397b1b9266a9 | 97 | return(registerRead(0x81)); |
bengo | 0:1720792a6e28 | 98 | } |
bengo | 0:1720792a6e28 | 99 | |
bengo | 0:1720792a6e28 | 100 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 101 | int VCNL4000::getProductRevision( void ) { |
bengo | 0:1720792a6e28 | 102 | return( registerRead( VCNL4000regAddr + ProdIdRevision ) & 0x0f ) ; |
bengo | 0:1720792a6e28 | 103 | } |
bengo | 0:1720792a6e28 | 104 | |
bengo | 0:1720792a6e28 | 105 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 106 | bool VCNL4000::proximityDataReady( void ) { |
bengo | 0:1720792a6e28 | 107 | return( ( registerRead( VCNL4000regAddr + Command ) & 0x20 ) >> 5 ); |
bengo | 0:1720792a6e28 | 108 | } |
bengo | 0:1720792a6e28 | 109 | |
bengo | 0:1720792a6e28 | 110 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 111 | bool VCNL4000::ambientLightDataReady( void ) { |
bengo | 0:1720792a6e28 | 112 | return( ( registerRead( VCNL4000regAddr + Command ) & 0x40 ) >> 6 ); |
bengo | 0:1720792a6e28 | 113 | } |
bengo | 0:1720792a6e28 | 114 | |
bengo | 0:1720792a6e28 | 115 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 116 | void VCNL4000::startProximityMeasurement( void ) { |
bengo | 0:1720792a6e28 | 117 | _data = registerRead( VCNL4000regAddr + Command ); |
bengo | 0:1720792a6e28 | 118 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 119 | _data = _data | 0x08; |
bengo | 0:1720792a6e28 | 120 | registerWrite( VCNL4000regAddr + Command, _data ); |
bengo | 0:1720792a6e28 | 121 | } |
bengo | 0:1720792a6e28 | 122 | } |
bengo | 0:1720792a6e28 | 123 | |
bengo | 0:1720792a6e28 | 124 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 125 | void VCNL4000::startAmbientLightMeasurement( void ) { |
bengo | 0:1720792a6e28 | 126 | _data = registerRead( VCNL4000regAddr + Command ); |
bengo | 0:1720792a6e28 | 127 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 128 | _data = _data | 0x10; |
bengo | 0:1720792a6e28 | 129 | registerWrite( VCNL4000regAddr + Command, _data ); |
bengo | 0:1720792a6e28 | 130 | } |
bengo | 0:1720792a6e28 | 131 | } |
bengo | 0:1720792a6e28 | 132 | |
bengo | 0:1720792a6e28 | 133 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 134 | void VCNL4000::setIRLedCurrent( int milliAmps ) { |
bengo | 0:1720792a6e28 | 135 | milliAmps /= 10; |
bengo | 0:1720792a6e28 | 136 | if( milliAmps > 20 ) { |
bengo | 0:1720792a6e28 | 137 | _status = 1; |
bengo | 0:1720792a6e28 | 138 | return; |
bengo | 0:1720792a6e28 | 139 | } |
bengo | 0:1720792a6e28 | 140 | _data = registerRead( VCNL4000regAddr + IRLedCurrent ); |
bengo | 0:1720792a6e28 | 141 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 142 | _data = ( _data & 0xc0 ) | milliAmps; |
bengo | 0:1720792a6e28 | 143 | registerWrite( VCNL4000regAddr + IRLedCurrent, _data ); |
bengo | 0:1720792a6e28 | 144 | } |
bengo | 0:1720792a6e28 | 145 | } |
bengo | 0:1720792a6e28 | 146 | |
bengo | 0:1720792a6e28 | 147 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 148 | void VCNL4000::enableALContinuousConversionMode( void ) { |
bengo | 0:1720792a6e28 | 149 | _data = registerRead( VCNL4000regAddr + AmbientLightParam ); |
bengo | 0:1720792a6e28 | 150 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 151 | _data = _data | 0x80; |
bengo | 0:1720792a6e28 | 152 | registerWrite( VCNL4000regAddr + AmbientLightParam, _data ); |
bengo | 0:1720792a6e28 | 153 | } |
bengo | 0:1720792a6e28 | 154 | } |
bengo | 0:1720792a6e28 | 155 | |
bengo | 0:1720792a6e28 | 156 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 157 | void VCNL4000::disableALContinuousConversionMode( void ) { |
bengo | 0:1720792a6e28 | 158 | _data = registerRead( VCNL4000regAddr + AmbientLightParam ); |
bengo | 0:1720792a6e28 | 159 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 160 | _data = _data & 0x7f; |
bengo | 0:1720792a6e28 | 161 | registerWrite( VCNL4000regAddr + AmbientLightParam, _data ); |
bengo | 0:1720792a6e28 | 162 | } |
bengo | 0:1720792a6e28 | 163 | } |
bengo | 0:1720792a6e28 | 164 | |
bengo | 0:1720792a6e28 | 165 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 166 | bool VCNL4000::isALContinuousConversionMode( void ) { |
bengo | 0:1720792a6e28 | 167 | _data = registerRead( VCNL4000regAddr + AmbientLightParam ); |
bengo | 0:1720792a6e28 | 168 | if( ( ( _data >> 7 ) & 1 ) == 1 ) { |
bengo | 0:1720792a6e28 | 169 | return( true ); |
bengo | 0:1720792a6e28 | 170 | } |
bengo | 0:1720792a6e28 | 171 | else { |
bengo | 0:1720792a6e28 | 172 | return( false ); |
bengo | 0:1720792a6e28 | 173 | } |
bengo | 0:1720792a6e28 | 174 | } |
bengo | 0:1720792a6e28 | 175 | |
bengo | 0:1720792a6e28 | 176 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 177 | void VCNL4000::enableALAutoOffsetCompensation( void ) { |
bengo | 0:1720792a6e28 | 178 | _data = registerRead( VCNL4000regAddr + AmbientLightParam ); |
bengo | 0:1720792a6e28 | 179 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 180 | _data = _data | 0x08; |
bengo | 0:1720792a6e28 | 181 | registerWrite( VCNL4000regAddr + AmbientLightParam, _data ); |
bengo | 0:1720792a6e28 | 182 | } |
bengo | 0:1720792a6e28 | 183 | } |
bengo | 0:1720792a6e28 | 184 | |
bengo | 0:1720792a6e28 | 185 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 186 | void VCNL4000::disableALAutoOffsetCompensation( void ) { |
bengo | 0:1720792a6e28 | 187 | _data = registerRead( VCNL4000regAddr + AmbientLightParam ); |
bengo | 0:1720792a6e28 | 188 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 189 | _data = _data & 0xf7; |
bengo | 0:1720792a6e28 | 190 | registerWrite( VCNL4000regAddr + AmbientLightParam, _data ); |
bengo | 0:1720792a6e28 | 191 | } |
bengo | 0:1720792a6e28 | 192 | } |
bengo | 0:1720792a6e28 | 193 | |
bengo | 0:1720792a6e28 | 194 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 195 | bool VCNL4000::iseALAutoOffsetCompensation( void ) { |
bengo | 0:1720792a6e28 | 196 | _data = registerRead( VCNL4000regAddr + AmbientLightParam ); |
bengo | 0:1720792a6e28 | 197 | if( ( ( _data >> 3 ) & 1 ) == 1 ) { |
bengo | 0:1720792a6e28 | 198 | return( true ); |
bengo | 0:1720792a6e28 | 199 | } |
bengo | 0:1720792a6e28 | 200 | else { |
bengo | 0:1720792a6e28 | 201 | return( false ); |
bengo | 0:1720792a6e28 | 202 | } |
bengo | 0:1720792a6e28 | 203 | } |
bengo | 0:1720792a6e28 | 204 | |
bengo | 0:1720792a6e28 | 205 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 206 | void VCNL4000::setALAveragingFunction( int measurements ) { |
bengo | 0:1720792a6e28 | 207 | if( measurements > 7 ) { |
bengo | 0:1720792a6e28 | 208 | _status = 1; |
bengo | 0:1720792a6e28 | 209 | return; |
bengo | 0:1720792a6e28 | 210 | } |
bengo | 0:1720792a6e28 | 211 | _data = registerRead( VCNL4000regAddr + AmbientLightParam ); |
bengo | 0:1720792a6e28 | 212 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 213 | _data = ( _data & 0xf8 ) | measurements; |
bengo | 0:1720792a6e28 | 214 | registerWrite( VCNL4000regAddr + AmbientLightParam, _data ); |
bengo | 0:1720792a6e28 | 215 | } |
bengo | 0:1720792a6e28 | 216 | } |
bengo | 0:1720792a6e28 | 217 | |
bengo | 0:1720792a6e28 | 218 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 219 | int VCNL4000::gettALAveragingFunction( void ) { |
bengo | 0:1720792a6e28 | 220 | _data = registerRead( VCNL4000regAddr + AmbientLightParam ); |
bengo | 0:1720792a6e28 | 221 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 222 | return( _data & 0xf ); |
bengo | 0:1720792a6e28 | 223 | } |
bengo | 0:1720792a6e28 | 224 | else { |
bengo | 0:1720792a6e28 | 225 | return( 0 ); |
bengo | 0:1720792a6e28 | 226 | } |
bengo | 0:1720792a6e28 | 227 | } |
bengo | 0:1720792a6e28 | 228 | |
bengo | 0:1720792a6e28 | 229 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 230 | void VCNL4000::setProximityMeasurementSigFreq( int frequency ) { |
bengo | 0:1720792a6e28 | 231 | if( frequency > 3 ) { |
bengo | 0:1720792a6e28 | 232 | _status = 1; |
bengo | 0:1720792a6e28 | 233 | return; |
bengo | 0:1720792a6e28 | 234 | } |
bengo | 0:1720792a6e28 | 235 | _data = registerRead( VCNL4000regAddr + ProximitySigFreq ); |
bengo | 0:1720792a6e28 | 236 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 237 | _data = ( _data & 0xfc ) | frequency; |
bengo | 0:1720792a6e28 | 238 | registerWrite( VCNL4000regAddr + ProximitySigFreq, _data ); |
bengo | 0:1720792a6e28 | 239 | } |
bengo | 0:1720792a6e28 | 240 | } |
bengo | 0:1720792a6e28 | 241 | |
bengo | 0:1720792a6e28 | 242 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 243 | int VCNL4000::getProximityMeasurementSigFreq( void ) { |
bengo | 0:1720792a6e28 | 244 | _data = registerRead( VCNL4000regAddr + ProximitySigFreq ); |
bengo | 0:1720792a6e28 | 245 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 246 | return( _data & 0x3 ); |
bengo | 0:1720792a6e28 | 247 | } |
bengo | 0:1720792a6e28 | 248 | else { |
bengo | 0:1720792a6e28 | 249 | return( 0 ); |
bengo | 0:1720792a6e28 | 250 | } |
bengo | 0:1720792a6e28 | 251 | } |
bengo | 0:1720792a6e28 | 252 | |
bengo | 0:1720792a6e28 | 253 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 254 | void VCNL4000::setProxiModulatorDelayTime( int delayTime ) { |
bengo | 0:1720792a6e28 | 255 | if( delayTime > 7 ) { |
bengo | 0:1720792a6e28 | 256 | _status = 1; |
bengo | 0:1720792a6e28 | 257 | return; |
bengo | 0:1720792a6e28 | 258 | } |
bengo | 0:1720792a6e28 | 259 | _data = registerRead( VCNL4000regAddr + ProxymityModulationTime ); |
bengo | 0:1720792a6e28 | 260 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 261 | _data = ( _data & 0x1f ) | ( delayTime << 5 ); |
bengo | 0:1720792a6e28 | 262 | registerWrite( VCNL4000regAddr + ProxymityModulationTime, _data ); |
bengo | 0:1720792a6e28 | 263 | } |
bengo | 0:1720792a6e28 | 264 | } |
bengo | 0:1720792a6e28 | 265 | |
bengo | 0:1720792a6e28 | 266 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 267 | int VCNL4000::getProxiModulatorDelayTime( void ) { |
bengo | 0:1720792a6e28 | 268 | _data = registerRead( VCNL4000regAddr + ProxymityModulationTime ); |
bengo | 0:1720792a6e28 | 269 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 270 | return( ( _data >> 5 ) & 0x7 ); |
bengo | 0:1720792a6e28 | 271 | } |
bengo | 0:1720792a6e28 | 272 | else { |
bengo | 0:1720792a6e28 | 273 | return( 0 ); |
bengo | 0:1720792a6e28 | 274 | } |
bengo | 0:1720792a6e28 | 275 | } |
bengo | 0:1720792a6e28 | 276 | |
bengo | 0:1720792a6e28 | 277 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 278 | void VCNL4000::setProxiModulatorDeadTime( int deadTime ) { |
bengo | 0:1720792a6e28 | 279 | if( deadTime > 7 ) { |
bengo | 0:1720792a6e28 | 280 | _status = 1; |
bengo | 0:1720792a6e28 | 281 | return; |
bengo | 0:1720792a6e28 | 282 | } |
bengo | 0:1720792a6e28 | 283 | _data = registerRead( VCNL4000regAddr + ProxymityModulationTime ); |
bengo | 0:1720792a6e28 | 284 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 285 | _data = ( _data & 0x07 ) | deadTime; |
bengo | 0:1720792a6e28 | 286 | registerWrite( VCNL4000regAddr + ProxymityModulationTime, _data ); |
bengo | 0:1720792a6e28 | 287 | } |
bengo | 0:1720792a6e28 | 288 | } |
bengo | 0:1720792a6e28 | 289 | |
bengo | 0:1720792a6e28 | 290 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 291 | int VCNL4000::getProxiModulatorDeadTime( void ) { |
bengo | 0:1720792a6e28 | 292 | _data = registerRead( VCNL4000regAddr + ProxymityModulationTime ); |
bengo | 0:1720792a6e28 | 293 | if( _status == 0 ) { |
bengo | 0:1720792a6e28 | 294 | return( _data & 0x7 ); |
bengo | 0:1720792a6e28 | 295 | } |
bengo | 0:1720792a6e28 | 296 | else { |
bengo | 0:1720792a6e28 | 297 | return( 0 ); |
bengo | 0:1720792a6e28 | 298 | } |
bengo | 0:1720792a6e28 | 299 | } |
bengo | 0:1720792a6e28 | 300 | |
bengo | 0:1720792a6e28 | 301 | // --------------------------------------------------- |
bengo | 0:1720792a6e28 | 302 |