合信论坛

快捷导航
查看: 6349|回复: 0

数组平移 数组移位的方法

[复制链接]

10

主题

14

帖子

170

积分

注册会员

Rank: 2

积分
170
发表于 2020-3-17 15:46:37 | 显示全部楼层 |阅读模式
本帖最后由 chenxiaochong 于 2020-3-17 15:52 编辑

在做平滑滤波器时,或者需要连续采样的场景,往往需要把采样的数据放到一个数组里,每次采样值放到数组第一个元素,原数组第一个元素到倒数第二个元素依次往后平移,丢掉数组最后一个元素
本帖介绍了一种函数封装方法,实现上述功能
特点: 能平移任意类型,任意长度的数组

步骤1: 添加CANopenSafetyBase库
本例用到了CANopenSafetyBase库里的MemCopy函数
1.png

步骤2: 封装方法(只拿来用的话,可以略过此步骤,直接将附件工程中的arrayTranslation函数整个复制到工程中即可)
3.png

步骤3:调用函数
参数说明:
1. en必须用沿触发,每个沿传送一个新值到数组中
2.arrayPoint 为数组的起始地址指针
3.dataPoint 为新值(采样值)的指针 (新值的类型必须与数组元素类型一致!
4.dataSize   为数组元素(新值)类型的字节宽度 (例:real 宽度为4 lreal 宽度为8),此处可用sizeOf()来取得新值的字节宽度
5.count  : 为数组元素个数
5.png


注意:dataSize    count  一定不要设错,不然可能导致数组溢出,导致不可预知的后果,可以用sizeOf 指令计算出dataSize  和  count 如图:
4.png




数组平移.zip

34.28 KB, 下载次数: 501

例程

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

客服热线
400-700-4858 周一至周五:09:00 - 18:00
深圳市南山区打石一路深圳国际创新谷6栋A座9层

深圳市合信自动化技术有限公司(简称“合信技术”)成立于2003年,高新技术企业,专注于工业自动化产品的研发、生产、销售和技术服务,依靠高质量、高性能的自动化控制产品与方案为客户创造最大价值,立志于成为全球领先的工业自动化解决方案供应商。

Archiver|手机版|小黑屋|COTRUST Inc. ( 粤ICP备13051915号 )

GMT+8, 2024-3-29 04:26 , Processed in 0.071691 second(s), 23 queries .

快速回复 返回顶部 返回列表