从陀螺仪中获取原始数据并处理-multirate systems and filter banks - p. vaidyanathan (prentice-hall 1993)(后缀文件丢失,自行添加查看)

上传者: 26766909 | 上传时间: 2023-02-17 11:43:35 | 文件大小: 33.8MB | 文件类型: PDF
(2) 从陀螺仪中获取原始数据并处理; (3) 更新数据并输出。 2. 代码分析 官方的驱动主要是了 MPL软件库(Motion Processing Library),要移植该软件库我们需 要为它提供 I2C 读写接口、定时服务以及 MPU6050 的数据更新标志。若需要输出调试信 息到上位机,还需要提供串口接口。 I2C 读写接口 MPL库的内部对 I2C 读写时都使用 i2c_write 及 i2c_read 函数,在文件“inv_mpu.c” 中给出了它们的接口格式,见代码清单 43-1。 代码清单 43-9 I2C 读写接口(inv_mpu.c 文件) 1 /* The following functions must be defined for this platform: 2 * i2c_write(unsigned char slave_addr, unsigned char reg_addr, 3 * unsigned char length, unsigned char const *data) 4 * i2c_read(unsigned char slave_addr, unsigned char reg_addr, 5 * unsigned char length, unsigned char *data) 6 */ 7 8 #define i2c_write Sensors_I2C_WriteRegister 9 #define i2c_read Sensors_I2C_ReadRegister 这些接口的格式与我们上一小节写的 I2C 读写函数 Sensors_I2C_ReadRegister 及 Sensors_I2C_WriteRegister 一致,所以可直接使用宏替换。 提供定时服务 MPL软件库中使用到了延时及时间戳功能,要求需要提供 delay_ms 函数实现毫秒级延 时,提供 get_ms 获取毫秒级的时间戳,它们的接口格式也在“inv_mpu.c”文件中给出, 见代码清单 43-2。 代码清单 43-10 定时服务接口(inv_mpu.c 文件) 1 /* 2 * delay_ms(unsigned long num_ms) 3 * get_ms(unsigned long *count) 4 */ 5 6 #define delay_ms Delay_ms 7 #define get_ms get_tick_count 我们为接口提供的 Delay_ms 及 get_tick_count 函数定义在 bsp_SysTick.c 文件,我们使 用 SysTick 每毫秒产生一次中断,进行计时,见代码清单 43-11。 代码清单 43-11 使用 Systick 进行定时(bsp_SysTick.c) 1 2 static __IO u32 TimingDelay; 3 static __IO uint32_t g_ul_ms_ticks=0; 4 /** 5 * @brief us 延时程序,1ms 为一个单位 6 * @param 7 * @arg nTime: Delay_ms( 1 ) 则实现的延时为 1 ms 8 * @retval 无 9 */ 10 void Delay_ms(__IO u32 nTime)

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明