完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
其实是抄别人的电路。
原理大致是这样子的: 1.首先对被测信号(0-100mV)进行定时积分,20ms。 2.单片机控制切换模拟开关,运放变为对基准电压信号(200mV)积分,看积分电路的输出什么时候能够达到2.5V。 3.一旦达到2.5V,单片机控制模拟开关,再次切换到被测信号,周而复始。 主程序是这么写的。[C] 纯文本查看 复制代码 void main(void){ init(); Delay20ms(); while(1) { if (PCAFlag == 1) { SendData(CCAP0H); //发送捕获时间低位 SendData(CCAP0L); //发送捕获时间高位 P1 &= 0xf0; //切换到基准电压通道 P1 |= 0x02; EA = 0; //关闭中断 Delay20ms(); //对200mV基准电压积分20ms EA = 1; //开中断 CH = 0; //PCA计数器清零 CL = 0; P1 &= 0xf0; //切换到被测通道 P1 |= 0x07; PCAFlag = 0; //捕获标志位清零 RUNLED = !RUNLED; } }}以下是测量50mV电压,串口接收过来的数据: 37 7B 37 86 37 90 37 97 37 A1 37 A9 37 B3 37 BC 37 62 37 74 十六进制数 14203 14214 14224 14231 14241 14249 14259 14268 14178 14196 十进制数 感觉跳动太大了。 2PT_0_3.zip (60.67 KB ) |
|
相关推荐
4个回答
|
|
谢谢帮顶。
在21上也发了贴,有位朋友说可能是软件20ms延时不精准的原因。不过我想这个20ms其实不是要求那么精确,只要每次延时的时间都是一致的就行。 也试着将PCA的计时器的时钟源有Fosc/12改为Fosc/2,结果测试数据还是蹦。 也怀疑过运放和积分电容,将抄袭目标板的运放和电容置换过来,现象依旧。 |
|
|
|
找到了,是串口发送数据影响了误差,当PCAFlag标志有效后,不应在此时将计数值发出去,而应立刻切换到基准信号通道。否则会由于串口发送占了一定时间,使被测信号的积分时间变长,对基准信号的积分时间段的开始位置就相应延后,最后对捕获值造成了影响。
|
|
|
|
请教群主,U10A的反向输入端接到哪儿?谢谢!
|
|
|
|
可以提供详细电路图吗?谢谢
|
|
|
|
只有小组成员才能发言,加入小组>>
2975 浏览 9 评论
2692 浏览 16 评论
3214 浏览 1 评论
8438 浏览 16 评论
3777 浏览 18 评论
6961浏览 6评论
求助,请问MS51FB9AE带隙电压能作为侦测的基准电压吗?
7457浏览 3评论
6958浏览 3评论
支持UART-to-BLE透传的新唐NuTool – BLE ATCMD开发工具推荐
5805浏览 3评论
9375浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-24 09:32 , Processed in 0.667099 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号