lib para o framework sgam
Dependencies: MPU6050 Grove_temperature
Dependents: example_smart-grid
peripheral/impl/Gyroscope.cpp@4:f21aab30658a, 2019-06-03 (annotated)
- Committer:
- AndersonIctus
- Date:
- Mon Jun 03 23:33:00 2019 -0300
- Revision:
- 4:f21aab30658a
- Parent:
- 3:f998244e9f80
- Child:
- 5:caecc2426bbb
- inclusao das logicas para observar uma mudan?a de valor
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AndersonIctus | 3:f998244e9f80 | 1 | #include "mbed.h" |
AndersonIctus | 3:f998244e9f80 | 2 | #include "MPU6050.h" |
AndersonIctus | 3:f998244e9f80 | 3 | |
AndersonIctus | 3:f998244e9f80 | 4 | #include "Gyroscope.h" |
AndersonIctus | 3:f998244e9f80 | 5 | |
AndersonIctus | 3:f998244e9f80 | 6 | #define LOG(args...) // printf(args) |
AndersonIctus | 3:f998244e9f80 | 7 | |
AndersonIctus | 3:f998244e9f80 | 8 | Gyroscope::Gyroscope(I2C i2c): mpu(i2c, MPU6050_ADDRESS_AD0_LOW) { |
AndersonIctus | 3:f998244e9f80 | 9 | mpu.initialize(); |
AndersonIctus | 3:f998244e9f80 | 10 | |
AndersonIctus | 3:f998244e9f80 | 11 | if(mpu.testConnection()) { |
AndersonIctus | 3:f998244e9f80 | 12 | LOG("MPU6050 test passed !!\r\n"); |
AndersonIctus | 3:f998244e9f80 | 13 | } else { |
AndersonIctus | 3:f998244e9f80 | 14 | LOG("MPU6050 test failed !!\r\n"); |
AndersonIctus | 3:f998244e9f80 | 15 | } |
AndersonIctus | 3:f998244e9f80 | 16 | } |
AndersonIctus | 3:f998244e9f80 | 17 | |
AndersonIctus | 3:f998244e9f80 | 18 | Gyroscope::~Gyroscope() { |
AndersonIctus | 3:f998244e9f80 | 19 | // mpu. |
AndersonIctus | 3:f998244e9f80 | 20 | } |
AndersonIctus | 3:f998244e9f80 | 21 | |
AndersonIctus | 3:f998244e9f80 | 22 | void Gyroscope::getMotion(GyroscopeData* data) { |
AndersonIctus | 3:f998244e9f80 | 23 | mpu.getMotion6( |
AndersonIctus | 3:f998244e9f80 | 24 | &data->ax, &data->ay, &data->az, |
AndersonIctus | 3:f998244e9f80 | 25 | &data->gx, &data->gy, &data->gz |
AndersonIctus | 3:f998244e9f80 | 26 | ); |
AndersonIctus | 3:f998244e9f80 | 27 | } |
AndersonIctus | 3:f998244e9f80 | 28 | |
AndersonIctus | 4:f21aab30658a | 29 | GyroscopeData Gyroscope::getValue() { |
AndersonIctus | 4:f21aab30658a | 30 | getMotion(Gyroscope::value); |
AndersonIctus | 4:f21aab30658a | 31 | return *(Gyroscope::value); |
AndersonIctus | 4:f21aab30658a | 32 | } |
AndersonIctus | 4:f21aab30658a | 33 | |
AndersonIctus | 4:f21aab30658a | 34 | void Gyroscope::setCallbackReadOcurred( void* (*callback)(GyroscopeData* value) ) { |
AndersonIctus | 4:f21aab30658a | 35 | Gyroscope::callback = callback; |
AndersonIctus | 3:f998244e9f80 | 36 | } |
AndersonIctus | 3:f998244e9f80 | 37 | |
AndersonIctus | 4:f21aab30658a | 38 | void Gyroscope::run(float timeout) { |
AndersonIctus | 4:f21aab30658a | 39 | // TODO: every timeout, calls acceptData !! |
AndersonIctus | 3:f998244e9f80 | 40 | } |
AndersonIctus | 4:f21aab30658a | 41 | |
AndersonIctus | 4:f21aab30658a | 42 | void Gyroscope::acceptDataEvent(GyroscopeData* data) { |
AndersonIctus | 4:f21aab30658a | 43 | if(Gyroscope::callback != NULL) |
AndersonIctus | 4:f21aab30658a | 44 | Gyroscope::callback(data); |
AndersonIctus | 4:f21aab30658a | 45 | } |