Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- inline void imu_aspirin_event(void (* _gyro_handler)(void), void (* _accel_handler)(void), void (* _mag_handler)(void))
- {
- switch(imu_aspirin.status) {
- case AspirinStatusUninit :
- return;
- case AspirinStatusIdle :
- break;
- case AspirinStatusReadingGyro :
- if (imu_aspirin.i2c_trans_gyro.status == I2CTransSuccess) {
- imu_aspirin.status = AspirinStatusIdle;
- imu_aspirin.time_since_last_gyro_reading = 0;
- gyro_copy_i2c();
- _gyro_handler();
- }
- break;
- case AspirinStatusReadingMag :
- if (imu_aspirin.i2c_trans_mag.status == I2CTransSuccess) {
- imu_aspirin.status = AspirinStatusIdle;
- imu_aspirin.time_since_last_mag_reading = 0;
- mag_copy_i2c();
- _mag_handler();
- }
- break;
- case AspirinStatusReadingAccel :
- imu_aspirin_arch_int_disable();
- imu_aspirin.time_since_last_accel_reading = 0;
- accel_copy_spi();
- _accel_handler();
- imu_aspirin_arch_int_enable();
- imu_aspirin.status = AspirinStatusIdle;
- break;
- default:
- imu_aspirin.status = AspirinStatusUninit;
- return;
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement