博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于8位AD_DA转换芯片的采样率问题
阅读量:5317 次
发布时间:2019-06-14

本文共 1311 字,大约阅读时间需要 4 分钟。

关于使用Keil计算程序执行时间

  1. 打开Keil程序,进入“启动/停止调试”界面。
  2. 在需要暂停的地方设置断点(在该句程序前双击)。
  3. 在程序上方有一行工具栏:此工具栏分别代表复位、运行、停止、步进、步越、步出、运行到光标处等。

  4. 点击运行,在断点处会自动停止,在右方获取程序执行时间S1。
  5. 若再次点击运行,则会在下一次断点处停止,可获取时间S2,S2-S1即为两个断点间程序执行的时间。
  6. 若点击步进,则进入函数内部一条一条执行。
  7. 若点击步越,则不进入函数,直接把此函数法当做一条语句执行,也可获取相同的时间。

关于8位AD/DA转换芯片采样率

这里以PCF8591为例。

  • 若不显示电压,使用以下语句:
1 val=PCF8591_AD(0);2 val=val*0.8;3 PCF8591_DA(val);

 则计算得程序执行时间为0.01911567秒,即采样率在52左右。

  • 若要加以显示,即使用以下语句:
1 val=PCF8591_AD(0); 2 vo=val*0.01953*100;//经AD转换后的转换值乘以精度0.01953,再放大100倍 3 vo=(int)(vo+0.5)>(int)vo?(int)vo+1:(int)vo;//四舍五入 4 LCD_show(1,5,((int)vo/100)+0x30); 5 LCD_show(1,6,'.'); 6 LCD_show(1,7,((int)vo%100/10)+0x30); 7 LCD_show(1,8,((int)vo%10)+0x30); 8 LCD_show(1,9,'V'); 9 LCD_show(1,11,val/100+0x30);10 LCD_show(1,12,val%100/10+0x30);11 LCD_show(1,13,val%10+0x30);*/12 val=val*0.8;13 PCF8591_DA(val);14 vo=val*0.01953*100;//经AD转换后的转换值乘以精度0.01953,再放大100倍15 vo=(int)(vo+0.5)>(int)vo?(int)vo+1:(int)vo;//四舍五入16 LCD_show(2,5,((int)vo/100)+0x30);17 LCD_show(2,6,'.');18 LCD_show(2,7,((int)vo%100/10)+0x30);19 LCD_show(2,8,((int)vo%10)+0x30);20 LCD_show(2,9,'V');21 LCD_show(2,11,val/100+0x30);22 LCD_show(2,12,val%100/10+0x30);23 LCD_show(2,13,val%10+0x30);

计算得程序执行总时间为0.41606988秒,即采样率为2.5左右。

【注】一般情况下,信号源使用1Hz/3V正弦波电压。

附件:https://pan.baidu.com/s/1jJv5z18

转载于:https://www.cnblogs.com/qijunhui/p/8283862.html

你可能感兴趣的文章
程序员求职之道(《程序员面试笔试宝典》)之学业与求职,孰轻孰重?
查看>>
Windows API GetVersionEx()判断系统版本详解
查看>>
我到底要选择一种什么样的生活方式,度过这一辈子呢:人生自由与职业发展方向(下)...
查看>>
一些有意思的算法代码[转载]
查看>>
redis下并发问题解决方案
查看>>
poj 题目分类
查看>>
An easy problem
查看>>
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
[转载]unix环境高级编程备忘:理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID...
查看>>
堆排序
查看>>
套接口和I/O通信
查看>>
thinkpaidE480office安装文件夹
查看>>
eclipse中git插件配置 编辑
查看>>
SQL获取每月最后一天记录
查看>>
crontab 使用整理
查看>>
【TOJ 2406】Power Strings(KMP找最多重复子串)
查看>>
hdu 1010
查看>>
keystone源码分析(一)——Paste Deploy的应用
查看>>