zoukankan      html  css  js  c++  java
  • 关于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

  • 相关阅读:
    Mongodb地理位置索引
    PHP中目录解析函数
    PHP中的date函数中时区问题
    PHP 文件上传全攻略
    PHP上传图片重命名6种方案
    C#|executequery要求已打开且可用的connection,连接的当前状态为已关闭
    C#|只有 assignment、call、increment、decrement 和 new 对象表达式可用作语句
    Android报错|Android Call requires API level 19 (current min is 15)
    机器学习|用机器学习预测谁将夺得世界杯冠军(附代码)
    Python|词云wordcloud入门示例
  • 原文地址:https://www.cnblogs.com/qijunhui/p/8283862.html
Copyright © 2011-2022 走看看