• 关于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

  • 相关阅读:
    Asp.Net 获取客户端真实IP方法总结
    C# 中英文符号互转(半角全角互转)
    执行git commit命令提示: “Please tell me who you are”的解决方案
    Tools
    VSC
    DevOps
    VSC
    DevOps
    DevOps
    K8S
  • 原文地址:https://www.cnblogs.com/qijunhui/p/8283862.html
Copyright © 2020-2023  润新知