打印

msp430 adc12 ntc热敏电阻 温度测试 求助

[复制链接]
1974|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
//热敏电阻检测函数
unsigned int ADC_Ntc_Detect( )   
{
    unsigned int data16;  
   
    P6SEL = 0x04;
    ADC12CTL0 = ADC12ON + ADC12SHT0_2;
    ADC12CTL1 = ADC12CSTARTADD1 + ADC12SHP;
    ADC12MCTL2 = ADC12INCH_2;
    ADC12IE = 0x04;
    ADC12CTL0 |= ADC12ENC+ADC12SC;
    _EINT();
   
    while(adc_sign!='o');
    adc_sign = 0;
    data16 = adc_data2;


    return data16;
}


//中断函数
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void)
{
    switch(__even_in_range(ADC12IV,34))
    {
    case  0: break;                           // Vector  0:  No interrupt
    case  2: break;                           // Vector  2:  ADC overflow
    case  4: break;                           // Vector  4:  ADC timing overflow
    case  6: break;                           // Vector  6:  ADC12IFG0
    case  8: break;                           // Vector  8:  ADC12IFG1
    case 10:
        adc_data2 = ADC12MEM2;
        adc_sign='o';                        //adc_sign 全局变量
        break;                                     // Vector 10:  ADC12IFG2
    case 12: break;                           // Vector 12:  ADC12IFG3
    case 14: break;                           // Vector 14:  ADC12IFG4
    case 16: break;                           // Vector 16:  ADC12IFG5
    case 18: break;                           // Vector 18:  ADC12IFG6
    case 20: break;                           // Vector 20:  ADC12IFG7
    case 22: break;                           // Vector 22:  ADC12IFG8
    case 24: break;                           // Vector 24:  ADC12IFG9
    case 26: break;                           // Vector 26:  ADC12IFG10
    case 28: break;                           // Vector 28:  ADC12IFG11
    case 30: break;                           // Vector 30:  ADC12IFG12
    case 32: break;                           // Vector 32:  ADC12IFG13
    case 34: break;                           // Vector 34:  ADC12IFG14
    default: break;
    }  

}


P6.2-----TEMP_ADC2 如图

现在 室温大约18度 但是串口显示adc_data2 结果为0x0195 左右,感觉数据不对,请问是哪里出了问题?多谢!

相关帖子

沙发
dirtwillfly| | 2015-4-14 22:06 | 只看该作者
哪里不对?
你用的什么型号的热敏电阻?

使用特权

评论回复
板凳
c小伙c|  楼主 | 2015-4-15 16:29 | 只看该作者
dirtwillfly 发表于 2015-4-14 22:06
哪里不对?
你用的什么型号的热敏电阻?

谢了 找到错误了:lol

使用特权

评论回复
地板
quray1985| | 2015-4-16 09:01 | 只看该作者
你用是什么热敏电阻
换算关系有没有?

使用特权

评论回复
5
c小伙c|  楼主 | 2015-4-17 09:35 | 只看该作者
quray1985 发表于 2015-4-16 09:01
你用是什么热敏电阻
换算关系有没有?

好了 多谢

使用特权

评论回复
6
angerbird| | 2015-4-20 22:23 | 只看该作者
这个要看下你的算法的吧。。

使用特权

评论回复
7
yuanzhang276| | 2015-6-5 13:23 | 只看该作者
你好,我用热敏电阻测温度,电路跟你的一样,温度变化转化的电压信号连接到MCU 内部ADC的IO口,得到的电压值偏高,换算成真实温度,高与实际温度15度左右,不接入IO口,得到的电压值换算成温度,与真实温度很接近,好像是接入到ADC IO口测试电路阻抗发生了变化,,,请问你是怎么解决的,使测得的温度为真实温度值

使用特权

评论回复
8
FireRiver9| | 2015-6-7 15:18 | 只看该作者
好像是接入到ADC IO口测试电路阻抗发生了变化

楼上什么情况,为什么

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

1

粉丝