关于8位AD_DA转换芯片的采样率问题

关于使用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CYQ.Data 数据框架 V4.0 开源版本发布(源码提供下载,秋色园V2.5版本标配框架)

说明的说明: 博客园团队两次移此文出首页,说 这篇文章不属于知识分享型文章,并且有广告嫌疑。 本文的确属于分享型文章,而且分享的知识点比其它文章都多很多,看看网友回复“谢谢分享”就知道是分享型文章了。 所谓广告…

oracle 分组后取每组第一条数据

数据格式 分组取第一条的效果 sql SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn, test1.* FROM test1) WHERE rn 1 ;

树莓派Zero 2 W(ubuntu-22.04)通过.NET6和libusb操作USB读写

有这个想法的初衷喜欢电子和DIY硬件的朋友对稚晖君应该都不陌生,他定期都会分享一些自己做的好玩的硬件,他之前做了一个ElectronBot桌面机器人我就很感兴趣,所以就自己也做了一个。起初我只是自己开发了一个叫电子脑壳的上位机软件&#xff0…

bzoj4589

fwt 原理并不知道 nim游戏石子异或和0后手赢 那么也就是求a[1]^a[2]^...^a[n]0的方案数 这个和bzoj3992一样可以dp dp[i][j]表示前i个数异或和为j的方案数 dp[0][0] 1 dp[i][j] dp[i - 1][k] * a[p] p ^ k j a[p] 0 / 1 表示有没有p这个数 这个东西也不能矩阵快速幂 但是我…

web框架之Django(一)

Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。 基本配置 一、创建django程序 终端命令:django-admin startprojec…

程序员制作出价值5亿外卖神器却不能取消订单,你知道吗?

小编今日给大家带来RACDisopsable,大家可能有部分人对这个会感觉到很陌生,那么我就用一句话来表达就是他可以帮我们取消订阅。那么又会有人会对这个产生疑问了,我们什么时候需要用到这个取消订阅了打个实际的例子来说吧,今天我在饿…

《精读 Mastering ABP Framework》教程发布

精读《Mastering ABP Framework》学习总结,掌握软件开发最佳实践,构建可维护 .NET 解决方案。从 ABP Framework 框架中学习如何构建现代 WEB 应用程序。掌握 ABP Framework 框架ABP Framework 是一个完整的基础架构,遵循软件开发最佳实践&…

C# 委托知识总结

1.什么是委托,为什么要使用委托 我正在埋头苦写程序,突然想喝水,但是又不想自己去掉杯水而打断自己的思路,于是我就想让女朋友去给我倒水。她去给我倒水,首先我得让她知道我想让她干什么,通知她之后我可以继…

阿里云大学课程学习有奖征文活动现在开始

2019独角兽企业重金招聘Python工程师标准>>> "学有所获,分享为美"--阿里云大学课程学习有奖征文活动开始啦~~ 看课程,写心得,赢千元大奖,还有机会加入阿里云大学技术作者群!想试试自己的技术文笔…

Android 的系统架构

Android 的系统架构和其它操作系统一样,采用了分层的架构。android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和 linux 核心层。 Android 是以 Linux 为核心的手机操作平台,作为一款开放式的操作系统&#xf…

记一次 .NET 某制造业 MES 系统崩溃分析

一:背景 1.讲故事前段时间有位朋友微信找到我,说他的程序偶尔会出现内存溢出崩溃,让我帮忙看下是怎么回事,咨询了下程序是 x86 部署,听到这个词其实心里已经有了数,不管怎么样还是用 windbg 分析一下。二&a…

首次公开!单日600PB的计算力--阿里巴巴EB级大数据平台的进击

摘要: 每年的双11之前,也是MaxCompute各种乾坤大挪移落定的时候,因为双11就是各种大折腾项目的自然deadline。在今年双11之前,一路向北迁移和在离线混部项目,将杭州集群除蚂蚁外整体迁移到张北,涉及了绝大部…

软件测试金字塔

软件测试金字塔 在敏捷方法中,持续集成是其基石,持续集成的核心是自动化测试。下面这篇关于测试金字塔的文章,来自大师Martin Fowler。 测试金字塔的概念来自Mike Cohn,在他的书Succeeding With Agile中有详细描述:测试…

使用pm2守护你的.NET Core应用程序

简介PM2是常用的node进程管理工具,它可以提供node.js应用管理,如自动重载、性能监控、负载均衡等。同类工具有Supervisor、Forever等。pm2是一个进程管理工具,可以用它来管理你的node进程,并查看node进程的状态,当然也支持性能监控…

程序员搞笑段子

转载于:https://www.cnblogs.com/Zhusi/p/10083474.html

CA周记 - 在 Azure ML 上用 .NET 跑机器学习

.NET 是一个跨平台,全场景应用的开源技术。你有在用 .NET 做机器学习/深度学习的应用吗?如果从框架角度,ML.NET / Tensorflow.NET / 不断在进步的 TorchSharp 通过几年的发展已经开始稳定,但如果在一些大型项目上,特别…

iOS10 优化APP首次安装网络权限提示方案

我刚经历了一场末日(停电),特别是在你想写文档的时候。。。 言归正传,今天的问题是解决iOS10系统下首次按钮APP弹出的网络权限提示所带来了问题以及优化。 起因 查了相关文章知道由于大陆工信部出台的新规指出,应用在未…

su命令

从一个用户切换到另一个用户:su - ceshi(ceshi是用户名) 查看当前用户:whoami 在不切换用户的情况执行另一个用户的命令:例:su - -c "touch /tmp/111.txt" admin 若用户没有加目录需要添加家目录,并更改所有…

PS批量替换内容

在制作图片物料的时候,有时会碰到需要制作大量内容格式一致,但部分文字或图片不同的图片,这里我们使用PS的变量功能 物料准备:准备好需要替换的图片和文字,使用excel制作出需要替换的内容,第一行name和pic…

在 .NET 中执行 JavaScript 代码

你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用!Jint 简介如果您想在您的 .NET 程序中使用 Javascript,那么我推荐您使用 Jint。Jint 是适用于 .NET 的 开源 Javascript 解…