完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
奉上代码
#include unsigned int long temp; unsigned int long TemperF; //华氏温度 unsigned int long TemperC; //摄氏温度 char digit[10]={0X5F,0X50,0X3D,0X79,0X72,0X6B,0X6F,0X51,0X7F,0X7B}; void main(void) { WDTCTL = WDTPW + WDTHOLD; //关闭系统看门狗 ADC12CTL0 = SHT0_8 + REFON + ADC12ON; //内部1.5V参考电压,打开ADC12模块,设置采样保持定时器 ADC12CTL1 = SHP; //采使用采样定时器 ADC12MCTL0 = SREF_1 + INCH_10; //参考电压和通道选择 ADC12IE = BIT0; //ADC12MEM0 ADC12CTL0 |= ENC; //允许转换 _BIS_SR(GIE); //开启系统中断 while(1) { ADC12CTL0 |= ADC12SC; //开始采样并AD转换 //oF = ((x/4096)*1500mV)-923mV)*1/1.97mV = x*761/4096 - 468 //IntDegF = (ADC12MEM0 - 2519)* 761/4096 TemperF = (temp - 2519) * 761; TemperF = TemperF / 4096; //简化的华氏温度转换公式 //oC = ((x/4096)*1500mV)-986mV)*1/3.55mV = x*423/4096 - 278 //IntDegC = (ADC12MEM0 - 2692)* 423/4096 TemperC = (temp - 2692) * 423; TemperC = TemperC / 4096; //简化的摄氏温度转换公式 //LCDMEM[0]=digit[temp/1000]; //LCDMEM[1]=digit[(temp%1000)/100]; //LCDMEM[2]=digit[(temp%100)/10]; //LCDMEM[3]=digit[temp%10]; _NOP(); //加入断点可用来观察IntDegF和IntDegC结果 } } #pragma vector=ADC_VECTOR __interrupt void ADC12ISR(void) { temp = ADC12MEM0; //保存转换结果 } |
|
|
|
我的工程文件在公司里, 暂时帮不了你, 看到你中断里面没有打开 ADC采样内部温度电阻的 采样步骤啊。
|
|
|
|
只有小组成员才能发言,加入小组>>
3045个成员聚集在这个小组
加入小组2951 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3645 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2354 浏览 1 评论
4822 浏览 1 评论
2582 浏览 1 评论
1348浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3645浏览 2评论
2951浏览 1评论
1539浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-12 15:58 , Processed in 1.796164 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号