美文网首页我爱编程
新版简易示波器出炉了(2015-08-15 20:44:08)

新版简易示波器出炉了(2015-08-15 20:44:08)

作者: 沧海一声笑的DIY宇宙 | 来源:发表于2018-02-22 20:35 被阅读0次
界面

惯例先上图。

增加了分频功能和频率触发捕获功能。

以前一直以为示波器是不断的捕获数据显示,但是想不通的是如果信号频率极高的话,画面会移动动的飞快。

后来才明白,原来示波器只是捕获一定时间段的数据并进行计算,而不是不停的读数据。

这次终于把AVR单片机的ADC分频功能实现了,这样就能指定特定频率的分频了。就是界面上的X4,X8等按钮的功能。

不过奇怪的是2分频和128分频好像有问题,2分频无法获得正确的数据,而128分频的时间计算很不正确。

这里贴出ADC配置函数,使用的是ADC5脚:(代码中的pin不是脚的代号而是频率)

void AdcInit(int pin)

{

  ADCSRA = 0;

  ADMUX = 0;

  ADMUX = _BV(MUX0) | _BV(MUX2) | _BV(REFS0);

  switch(pin)

  {

    case 0: // 4

      ADCSRA = _BV(ADPS1);

      break;

    case 1: // 8

      ADCSRA = _BV(ADPS0) | _BV(ADPS1);

      break;

    case 2: // 16

      ADCSRA = _BV(ADPS2);

      break;

    case 3: // 32

      ADCSRA = _BV(ADPS2) | _BV(ADPS0);

      break;

    case 4: // 64

      ADCSRA = _BV(ADPS2) | _BV(ADPS1);

      break;

    case 5: // 128

      ADCSRA = _BV(ADPS2) | _BV(ADPS1) | _BV(ADPS0);

      break;

  }

  ADCSRA |= _BV(ADEN);

}

开始我没有配置REFS0,导致不能正确的读数,另外数据是用阻塞的方式获得,没有使用ADC中断。现在简易示波器能用了,就差搞个信号发生器来试试了。

相关文章

  • 新版简易示波器出炉了(2015-08-15 20:44:08)

    惯例先上图。 增加了分频功能和频率触发捕获功能。 以前一直以为示波器是不断的捕获数据显示,但是想不通的是如果信号频...

  • 2018-04-11

    08:32 到公司 08:33-08:43 整理桌面卫生 08:44-09:20 研究员工离职的原因 09:21-...

  • 2015-08-15

    2015-08-15 星期六,阴天。 前两个星期跟经理说要走人了,本来这件事公司里就只有两个经理和带我的前辈知道(...

  • 2021.10.18

    01:29-01:42 04:47-05:05 08:44-08:57 11:20-11:32 15:40-15:...

  • Postgres的Array类型

    title: "Postgres的Array类型"date: 2021-02-02T20:47:44+08:00d...

  • 示波器直方图和曲线

    在Premiere最新版中示波器的直方图信息其实一样,只是将它倒过来了Premiere最新版的直方图 曲线 无论是...

  • 简易示波器(续)(2015-08-16 22:46:09)

    增加了信号捕获后停止后续数据分析的按钮。 然后用555定时器搭了个方波信号,测测效果还不错。 从波形看,这是个1k...

  • 经典电影|辩护人

    经典电影|辩护人 2015-08-15评律论法编辑部 点击上方“评律论法编辑部”可以订阅哦! 内容 简介 或许一开...

  • 2015腾讯产品经理校园招聘--求职也是做产品

    2015-08-15 作者:张齐桉 求职是对自己的又一次审视。校招季,如何迅速找准自身定位,并针对性地开展求职计划...

  • 华为校园招聘面试--百草园随笔

    2015-08-15 作者:培钿 坐在华为百草园公寓里,在键盘上敲下这篇文章,思绪万千。虽然才刚到公司报道几天,但...

网友评论

    本文标题:新版简易示波器出炉了(2015-08-15 20:44:08)

    本文链接:https://www.haomeiwen.com/subject/jkhzzxtx.html