一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 3955|回复: 12

[其他综合] [过节无大牛 菜鸟来闲逛]发个BASCOM的过采样实例程序,供各位批评指正!

[复制链接]
发表于 2012-10-2 09:58 | 显示全部楼层 |阅读模式
M128的10bit ADC过采样到14bit,实测数据非常稳,推荐各位使用!
  1. $regfile = "m128def.dat"
  2. $crystal = 8000000
  3. $baud = 9600

  4. '$sim

  5. Config Adc = Single , Prescaler = Auto , Reference = Internal
  6. On Adc Adc_isr
  7. Enable Adc
  8. Enable Interrupts

  9. Dim W As Word , V As Long , Y As Single , I As Word , S As String * 5
  10. I = 0
  11. V = 0
  12. Cursor Off Noblink
  13. Cls
  14. Lcd "  ADC:     /16384"
  15. Lowerline
  16. Lcd "  VOL:"

  17. Do
  18. Start Adc
  19. Idle
  20. Stop Adc
  21. If I = 256 Then
  22.       Shift V , Right , 4
  23.       Y = V / 16384
  24.       Y = Y * 2.56
  25.       Locate 1 , 7
  26.       S = Str(v)
  27.       S = Format(s , "     ")
  28.       Lcd S
  29.       Locate 2 , 7
  30.       Lcd Y
  31.       I = 0
  32.       V = 0
  33. End If
  34. Loop
  35. End

  36. Adc_isr:
  37. W = Getadc(0)
  38. V = V + W
  39. I = I + 1
  40. Return
复制代码

评分

参与人数 1一乐金币 +4 收起 理由
浩祺心 + 4 好例子,就得支持!

查看全部评分

发表于 2012-10-2 11:06 | 显示全部楼层
实践出真知啊。顶楼主。
回复

使用道具 举报

发表于 2012-10-2 11:39 | 显示全部楼层
再过采样也没啥用,自欺欺人的事情,换高位的AD才是王道。
回复

使用道具 举报

发表于 2012-10-2 15:34 | 显示全部楼层
本帖最后由 jimmy_xt 于 2012-10-2 16:49 编辑

看不出如何提高分辨率的……

---------------------------------------------------------
来源是AVR121,atmel官方的应用参考。
中文版:http://wenku.baidu.com/view/be2a46ddad51f01dc281f154.html
回复

使用道具 举报

发表于 2012-10-2 15:43 | 显示全部楼层
Y = V / 16384
Y = Y * 2.56

这个可以换成 Y = V / 6400
回复

使用道具 举报

 楼主| 发表于 2012-10-2 16:14 | 显示全部楼层
这个可以换成 Y = V / 6400
阳光999 发表于 2012-10-2 15:43 https://www.yleee.com.cn/images/common/back.gif



   干活的是这几句
  1. Shift V , Right , 4
  2. Y = V / 16384
  3. Y = Y * 2.56
复制代码

在ADC满足过采样条件下进行以上处理可以增加有效数字的位数,具体请看百度文库上的一篇文章。
写成除以6400可以减少程序行数,但明显会减弱可读性。照这个写个13bit的,应该就非常好改,这也是我比较喜欢bascom的原因之一。
回复

使用道具 举报

发表于 2012-10-2 17:17 | 显示全部楼层
回复 6# keanu131


  可读性是另外一回事,除以一个大数再乘上一个数带来的误差也要考虑
回复

使用道具 举报

发表于 2012-10-2 23:27 | 显示全部楼层
过采样是否可以这样理解
10bit  1024份 2.5v基准 十比一分压,量程0-25V,2500/1024= 每份2.44mv

通过调整分压,改为量程0-12.5v,满幅还是2.5v输入
即 1250/1024= 每份1.22mv
这样精度提高一倍,是否这样就叫过采样?
回复

使用道具 举报

发表于 2012-10-3 00:10 | 显示全部楼层
刚百度一下,过采样没这么简单哈。要叠加白噪声进去,四种白噪声怎么加进去呢,而且要求精度很高
用PWM,DA?
回复

使用道具 举报

 楼主| 发表于 2012-10-3 13:16 | 显示全部楼层
过采样是否可以这样理解
10bit  1024份 2.5v基准 十比一分压,量程0-25V,2500/1024= 每份2.44mv

通过调 ...
gw168sh 发表于 2012-10-2 23:27 https://www.yleee.com.cn/images/common/back.gif



   前提里面最重要一项是原始ADC采样有大于1lsb的抖动,则可通过多次采样平均消除随机噪声,提高信号的分辨率。基准一直是2.56没有变化。
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-11-4 00:44 , Processed in 0.032973 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表