a33

二次样条插值

☆樱花仙子☆ 提交于 2020-01-20 05:02:54
# encoding:utf-8 import numpy as np import matplotlib.pyplot as plt # 关键点 x = [2.0, 4.5, 7.0, 9.0, 11.0] y = [1.5, 2.5, 1.5, 0.5, 5.0] def main(): # 检查长度 if len(x) != len(y): print('error! len(x) != len(y)') return # 第一个点到第二个点之间使用直线连接,计算斜率和截距 slope = (y[1] - y[0]) / (x[1] - x[0]) intercept = y[0] - slope * x[0] bivariate_primary_plot(0, slope, intercept, x[0], x[1]) # 第二个点到最后一个点之间使用二次函数拟合 for i in range(1, len(x) - 1): # 2 * x1 * a + b = y1' # x1 * x1 * a + x1 * b + c = y1 # x2 * x2 * a + x2 * b + c = y2 a11 = 2 * x[i] a12 = 1 a13 = 0 b1 = slope a21 = x[i] * x[i] a22 = x[i] a23 = 1 b2 = y[i]

从A33移植ICM20608D谈Android sensors移植

谁都会走 提交于 2019-12-05 11:48:53
在A33上移植ICM20608D,历时3.5天。回顾该Sneosr移植、调试历程,没有产生过多障碍及意外。可以说,一切按设想中的样子演进。16日下午完成了linux driver及android hal的移植,确认sensor工作正常,interrupt可产生,driver可作出响应。17日及18日,熟悉代码及调试。19日供应商现场支持,收官。 Android sensors的移植方法,可以概括为以下步骤: 确认硬件线路是否正确。 移植sensor driver。 脱离HAL层对driver及sensor进行调试,确认sensor工作是否正常,driver是否移植正确。 移植HAL层,结合HAL及driver调试。 必要时检查SensorService。 若上述5步做到位但未得到预期结果,迅速联系供应商做现场支持。 第1点不必多说,读懂原理图是作为嵌入式软件工程师的基本素质。 第2点是移植driver,一般来说,供应商会给到某平台的适用source code,不一定是全志平台,但必须是可用的,完整的source code。移植driver要做的工作一般是: linux core打开driver所需要的外部模块及代码。 根据平台特性加入driver private data。 根据平台特性加入bus识别sensor的代码。 根据平台特性完成中断/唤醒等gpio申请注册使用。