外观
十六、综合案例实验
实验原理
实验所需知识
通过前面11个小节的学习,大家对每一个功能模块应该都有了了解,综合实验就是将前面11小节内容总结起来,分工合作,最终实现简易示波器效果。
若大家对某一个基础实验掌握不够,建议先会对应章节阅读掌握。否则可能对综合实验无从下手。
简易示波器项目
项目介绍
通过本次实验,实现以下内容:
- 在1.8寸TFT屏幕上显示波形;
- 支持通过旋钮对波形进行放大与缩小查看;
- 支持暂停波形显示;
- 支持输出1K、2K、4K方波信号,能够被自身输入检测到并显示在示波器上;
- 支持通过按键调整占空比;
- 支持频率测量。
配置流程
通过前面的学习,这节课就是对功能所需要用到的知识点进行梳理、汇总。
显示波形
- 需要参考屏幕显示实验以及波形显示实验,通过这两个实验,已经可以掌握基础的屏幕显示与波形绘制。
- 如果需要显示其余文字或字库,需要自行导入字库,详细请参考《附件资料》中对应1.8寸TFT屏幕资料,不同厂商写的字符显示函数与汉字显示函数会有差异,需要根据厂商的内容进行对应取字模如何转换到font.c中去。
- 在屏幕上显示波形,如果采样率和频率不整除,采样完后会有非整数倍的波形,当年循环执行采样,多出来的波形会和原来的不重合就会导致波形的滚动;
解决办法:可通过固定起始显示波形的值,例如,一次采样300个点,然后需要将这三百个点的电压值转换为波形,如果直接转换,就会出现上述问题,此时在软件中认为加入一个阈值电压,只有当达到改阈值电压后,才开始后续波形的转换,并显示,显示数据多少根据屏幕大小决定。
这样,不管波形会不会被整除,起始波形只会是在该阈值电压上。
波形采样
波形数据获取前面已经知道是通过ADC进行读取的,如何将对应ADC数据转换为波形图进行显示。这里假设是1KHz的方波,如果此时ADC时钟很快,采样周期也很短,那它可以迅速就将300个数据读完,但是波形可能还没开始变化。
所以,可以通过对ADC时钟的设置、采样周期的设置,来设置它采样的速度,从而实现波形的放大与缩小。当外接1KHz时,可以尝试慢一点采样,这样在300个点中,可能就能读取到几次波形变换的值。
当外接2K、4K甚至10KHz时,就需要增大采样速度,否则波形变换太快,采样速度跟不上波形变化的速度,就会导致波形失真。
波形暂停
因为目前波形显示是通过画点与画线函数逐个打上去进行显示的,所以暂停波形显示是非常简单的,当检测到按键按下,停止电压值转化为波形数据即可。
输出不同频率方波信号
通过PWM输出实验,已经掌握了输出1KHz方波信号,其余频率的方波信号,可以通过修改周期来达到目的,
注意周期修改了,预分频系数不变,也就意味着频率修改了,但是改变频率,占空比不能动,所以周期修改后,占空比的比较值需要同步进行调整。(否则原本周期为1000,比较值为500,占空比50%。现在周期10000,比较值500,占空比0.5%)。
调整占空比
占空比是周期/比较值,这里修改占空比,无需调整周期,别把事情弄复杂了,调整定时器比较值即可。
频率测试
频率测量是通过输入捕获实验进行的,前面实验中是将其输入到串口上,这里仅是改变输出到屏幕进行显示,没有较大改动,需要注意一点,假设原本有波形输入,频率测量也支持,但是突然波形断开,可能你频率仅采集到一个触发沿就没有下文了,这是频率应该是要为0,简单处理就是检测到输入电压为0时频率也为0。
资料下载
工程代码可前往gitee下载资料包,简易数字示波器资料包