完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
测量四路4-20ma,100欧姆采样电阻
这是msp430f149ad初始化程序unsigned char AD_Num ; //AD采样次数 float Humidity_AD0[6]; //土壤湿度采集的AD值,6次平均后,转化为土壤湿度 float Humidity_AD1[6]; //土壤湿度采集的AD值,6次平均后,转化为土壤湿度 float Humidity_AD2[6]; //土壤湿度采集的AD值,6次平均后,转化为土壤湿度 float Humidity_AD3[6]; //土壤湿度采集的AD值,6次平均后,转化为土壤湿度 unsigned int Humidity0; unsigned int Humidity1; unsigned int Humidity2; unsigned int Humidity3; ADC12CTL0&=~ENC; ADC12CTL0 = ADC12ON + REFON + REF2_5V + MSC; // Turn on and set up ADC12 ADC12CTL1 = SHP + CONSEQ_2; // Use sampling timer ADC12MCTL0 = INCH_3 + SREF_1; //p6.3,参考电压内部2.5 ADC12MCTL1 = INCH_3 + SREF_1 ; //p6.4,参考电压内部2.5V ADC12MCTL2 = INCH_4 + SREF_1; //p6.5,参考电压内部2.5V ADC12MCTL3 = INCH_4 + SREF_1; //p6.6,参考电压内部2.5V ADC12MCTL4 = INCH_5 + SREF_1; ADC12MCTL5 = INCH_5 + SREF_1; ADC12MCTL6 = INCH_6 + SREF_1; ADC12MCTL7 = INCH_6 + SREF_1+EOS; ADC12CTL1 = 0X0202; //ADC12SC位触发采样和保持// //采样脉冲由采样定时器产生// //时钟源:内部振荡器,时钟分频:1// //转换模式:多通道、多次转换// ADC12CTL0 = 0x0800; //采样周期48分频延时后检测更准,关闭AD以节省电源// ad采集主程序 unsigned int i; ADC12CTL0 |= 0X0060; //打开内部参考电压,选择内部2.5V基准 ADC12CTL0 |= 0X0010; //打开AD// ADC12CTL0 |= MSC ; //自动转换 for(i=0;i<1000;i++); ADC12CTL0 |= 0X02; //使能AD// ADC12CTL0 |= 0X01; //开始转换,三个通道采样电池1,三个通道采样电池2,一个通道采集温度。 while((ADC12CTL1&0X01)==1); //等待整个序列的转换完成// Humidity_AD0[AD_Num] =(ADC12MEM[0]+ADC12MEM[1])/2; Humidity_AD1[AD_Num] =(ADC12MEM[2]+ADC12MEM[3])/2; Humidity_AD2[AD_Num] =(ADC12MEM[4]+ADC12MEM[5])/2; Humidity_AD3[AD_Num] =(ADC12MEM[6]+ADC12MEM[7])/2; AD_Num++; if(AD_Num>=6) AD_Num = 0; humidity0=(Humidity_AD0[0]+Humidity_AD0[1]+Humidity_AD0[2]+Humidity_AD0[3]+Humidity_AD0[4]+Humidity_AD0[5])/6; humidity1=(Humidity_AD1[0]+Humidity_AD1[1]+Humidity_AD1[2]+Humidity_AD1[3]+Humidity_AD1[4]+Humidity_AD1[5])/6; humidity2=(Humidity_AD2[0]+Humidity_AD2[1]+Humidity_AD2[2]+Humidity_AD2[3]+Humidity_AD2[4]+Humidity_AD2[5])/6; humidity3=(Humidity_AD3[0]+Humidity_AD3[1]+Humidity_AD3[2]+Humidity_AD3[3]+Humidity_AD3[4]+Humidity_AD3[5])/6; if(humidity0 -655.2<0) Humidity0 = 0; else Humidity0 = (unsigned int)((ADH-ADL)/(3276.0-655.2)*(humidity0-655.2)+ADL); if(humidity1 -655.2<0) Humidity1 = 0; else Humidity1 = (unsigned int)((ADH-ADL)/(3276.0-655.2)*(humidity1-655.2)+ADL); if(humidity2 -655.2<0) Humidity2 = 0; else Humidity2 = (unsigned int)((ADH-ADL)/(3276.0-655.2)*(humidity2-655.2)+ADL); if(humidity3 -655.2< 0) Humidity3 = 0; else Humidity3 = (unsigned int)((ADH-ADL)/(3276.0-655.2)*(humidity3-655.2)+ADL); ADC12CTL0 &= ~0X02; //停止AD使能// ADC12CTL0 &= ~0X10; //关闭AD// ADC12CTL0 &= ~0X20; //关闭基准// 结果测量出来的ad值总是出现非常大的采集值。。。图片是仿真测试时候的值,,,,应该都是734左右。。。是不是引脚和通道不匹配?
|
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
2972个成员聚集在这个小组
加入小组2763 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3277 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2298 浏览 1 评论
4738 浏览 1 评论
2515 浏览 1 评论
1040浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3279浏览 2评论
2763浏览 1评论
1172浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-8 10:44 , Processed in 1.610460 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号