历史上的今天
返回首页

历史上的今天

今天是:2025年02月18日(星期二)

正在发生

2019年02月18日 | 【单片机笔记】代码中非线性表快速转换成数组的实用方法

2019-02-18 来源:eefocus

很多情况下在电子开发的过程中需要用到非线性表,根据厂家提供的表格用MCU测量ADC数值进行转换得到传感器的测量值,在此记录一下目前一个实用的方法,以下以温度探头传感器的非线性表为例:


厂家提供的是一个PDF表格,如图:




很多时候很头疼怎么把这些有效的数据给取出放在代码中使用


1、首先度娘搜索PDF在线转换,提供一个比较好的网址:http://app.xunjiepdf.com/pdf2excel


这里面有PDF转各种格式,为了更好的得到数据,我用PDF转EXCEL表格的形式


上传需要转换的PDF文档,在线转换,得到转换后的EXCEL表格并下载下来如下图:



打开表格后每个PDF页都转换成了表格形式,文字形式不重要,重要的是数据。如图所示:



再次我取典型值,(最大值和最小值可以忽略,应个人需求而定)


在表格中典型值后面的一列我把数据扩大100倍,并且把小数点去掉,目的是让数据成为整形,也同时提高精度。MCU中存储浮点数消耗的内存空间很大,并且在后期查找数值表的过程中整形的数据查找效率是要高上很多的。(如果不理解可以恶补一下相关知识)。把需要的数据扩大后复制到一个新建的txt中,这样做的目的是为了去除EXCEL中的格式问题,复制到txt就没有格式了,如果直接把这些数据在EXCEL中赋值是带格式赋值的,也就是赋值的不是数据,而是一堆格式。


需要数据赋值在txt中后,会发现格式还存在一些问题。


如下图





需要数据赋值在txt中后,会发现格式还存在一些问题。,这就需要另一个文档编辑器来辅助一下:Notepad+


这个可以用来编程,当然我更多的使用它是用作查看代码。


操作的方式是Ctrl+H(替换),根据图示的参数来替换(也就是把换行符("\r\n")替换成","),要注意一点是输入法一定要是英文输入法,这样才不会带代码中报错。


一下是替换之后的数据如图:




会发现这个全部是一行,(因为我开启了自动换行所以才呈现出多行)。


这下就可以根据自己的习惯手动键入换行了,比如我这里以每行10个数据,完成之后如下图:



注意最后一个数据后面的","需要去掉!


好了这个数据及格式就弄好了,然后再在代码里面声明一个数组用来存储。如下图所示:



这里注意两点:


1、数据类型的问题,根据数据的大小来确定数据类型,这里数据的范围是0-65535之间,很容易就可以确定是无符号整形(unsigned int)


2、数据存数形式问题,因为这些数据一般是不会做改变的,也就是就使用来读取的,这样的话就可以不用存到RAM里面而存到FLASH里面,RAM的空间是很小的,而FLASH还是比较大的。


以上就是完整的过程。

推荐阅读

史海拾趣

力芯微(ETEK)公司的发展小趣事

2024年第一季度,力芯微公司实现了营业总收入2.20亿元,同比增长23.57%;归母净利润5347.70万元,同比增长93.35%。这一业绩的取得,不仅体现了公司强大的市场竞争力和盈利能力,也为公司未来的发展奠定了坚实的基础。同时,公司在资产结构、现金流量等方面也取得了显著的改善。

请注意,以上故事均基于事实描述,未对力芯微公司进行评价或褒贬。每个故事都力求全面、客观地展现力芯微公司在电子行业中的发展历程和成就。

Accelink Technologies Co Ltd公司的发展小趣事

力芯微公司在数字信号处理器领域拥有丰富的经验和深厚的技术积累,是行业内领先的企业之一。公司拥有一支高素质的研发团队,不断推进技术创新和产品升级。通过持续的研发投入和技术创新,力芯微在数字信号处理器领域保持了领先地位,并赢得了客户的广泛认可。

DEVCON公司的发展小趣事

在竞争激烈的电子行业中,提供优质的服务是赢得客户信任的关键。DEVCON公司深知这一点,因此不断创新服务模式,提升服务质量。公司建立了完善的售后服务体系,为客户提供及时、专业的技术支持和解决方案。同时,公司还积极开展培训活动,提升员工的技能水平和服务意识。这些创新举措赢得了客户的广泛赞誉和信赖,为DEVCON公司的稳定发展提供了有力保障。

Burr-Brown公司的发展小趣事

Burr-Brown公司,成立于1956年,初期仅有两名雇员,并得益于房地产开发商的支持。公司起初专注于制造模拟集成电路,第一年的销售总额为1600美元。创始人布朗怀揣雄心壮志,提出在一年内将厂房扩大到1200平方英尺,并期望销售收入能增长到7200美元。随着销售的稳步增长,公司不断迁往更大的设施,最终在1965年购买了附近的机场,为公司未来的成长奠定了坚实的基础。

Dailywell Electronics Co Ltd公司的发展小趣事

1997年3月,德利威电子股份有限公司正式成立,标志着其进入电子行业的起点。凭借创办人超过二十年的研发和生产经验,德利威电子从创立之初就注重产品质量和技术创新。在创立初期,德利威电子即获得了ISO 9002国际标准认证,显示出其对品质管理的高度重视。同时,其各系列产品也迅速通过了美国UL及加拿大CSA产品安规认证,进一步证明了其产品的安全性和可靠性。

Elektron公司的发展小趣事

随着业务的不断拓展和市场的不断扩大,Elektron公司逐渐将目光投向了全球市场。公司在全球范围内设立了多个代表处和分支机构,与当地的合作伙伴建立了紧密的合作关系。通过全球化战略的实施,Elektron成功进入了焊接设备、等离子切割设备和电池服务设备的高端市场,并成为了世界市场的领导者之一。

问答坊 | AI 解惑

LED驱动mos推荐

尚晶推荐LED驱动用MOS 管 DTS2306;DTS3400…

查看全部问答>

德州仪器达芬奇五年之路七宗罪,嵌入式处理器架构之争决战2012(三)

2008年,注定是不平凡的一年。 TI或许已经意识到了在中国这样一个神奇的土地上,有这样一个潜规则,那就是只有硬件是可以卖钱的,硬件上跑的所有东西你都要送我。于是TI开始做出这样一个决定,Linux内核维护从以MonvtaVista为主树转移到以自己维护 ...…

查看全部问答>

wince 挂起后, 闹铃

现在是想在 wince 挂起后,待机后, 自已写的闹铃程序不受影响,到达设定的时候时,还能正常响铃... 大家帮忙..谢谢..…

查看全部问答>

windows ce如何与WINDOWS xp联网

  我是刚接触使用WINDOWS ce的新手,我的要求是XP如何与WINDOWS CE通过交换机连接,我现在可以在XP的电脑上PING通WINDOWS CE电脑上的IP,我需要怎么做才可以看到WINDOWS CE上的数据.因为我太需要WINDOWS ce上的数据文件,   麻烦 ...…

查看全部问答>

基于AD9288/DSP的数字图像采集处理

首先谢谢EEWORLD,ADI,也特别谢谢SOSO姐 。 之前提交的方案,系统比较复杂,时间有限到目前为止完成了部分功能,还没有完全做完,先汇报下一些硬件原理一些相关的。采用双CIS(Contact image sensor)采集的模拟信号经过运放放大到AD的采样的合适 ...…

查看全部问答>

中断按键防抖问题

设定了一个中断按键,低电平触发,但是按键有抖动,按一下键触发好几个中断程序?怎么解决?…

查看全部问答>

初学altera FPGA

刚刚开始接触fpga,用quartus11.1,报错: Error (199067): Quartus II software currently does not support the generation of timing analysis netlists for Cyclone IV E device family Error: Quartus II 64-Bit EDA Netlist Writer was uns ...…

查看全部问答>

平面声音定位系统的程序,求助。

平面声音定位系统的程序,求助。 …

查看全部问答>

【MicroPython】就这么任性

接上一个帖子https://bbs.eeworld.com.cn/thread-489163-1-1.html 上一个程序我们更改了python的main文件,其实可以用更简单快捷的方式完成,即通过串口编辑程序控制LED及其他。你说什么?不信,往下看 Python就是这么任性,把之前的代码在串口 ...…

查看全部问答>

通信协议

请问通信协议在传输的过程中高电平与低电平所持续的时间是固定的吗?打个比方我想做一个两种协议转换的板子,只要把两种协议所需要的端口接到处理器上,并且为处理器搭建好了工作所需的最小系统,这样硬件搭建就可以了吗?两种协议相互转换的功能全 ...…

查看全部问答>