This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430F1611:关于 msp430f1611中的温度程序

Guru**** 2188825 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/939859/ccs-msp430f1611-about-temperature-program-in-msp430f1611

器件型号:MSP430F1611

工具/软件:Code Composer Studio

SIR 这是温度测量的程序部分

int long temp;
int long IntDegF;
int long IntDegC;

int main (空)

WDTCTL = WDTPW + WDTHOLD;//停止 WDT
ADC12CTL0 = SHT0_8 + REFON + ADC12ON;
ADC12CTL1 = SHP;//启用采样计时器
ADC12MCTL0 = SREF_1 + INCH_10;
ADC12IE = 0x001;
ADC12CTL0 |= ENC;

while (1)

ADC12CTL0 |= ADC12SC;//采样和转换启动
_bis_SR_register (CPUOFF + GIE);//启用中断的 LPM0

//=((x/4096)* 1500mV)-923mV)* 1/1.97mV = x* 761/4096 - 468
// IntDegF =(ADC12MEM0 - 2519)* 761/4096
IntDegF =(temp - 2519)* 761;
IntDegF = IntDegF / 4096;

// oC =((x/4096)*1500mV)-986mV)*1/3.55mV = x*423/4096 - 278
// IntDegC =(ADC12MEM0 - 2692)* 423/4096
IntDegC =(temp - 2692)* 423;
IntDegC = IntDegC / 4096;

__no_operation();//<<在此设置断点

#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector=ADC12_vector
_interrupt void ADC12ISR (void)
#Elif defined (_GNU_)
void __attribute__((interrupt (ADC12_vector)) ADC12ISR (void)
其他
错误编译器不受支持!
#endif

temp = ADC12MEM0;//移动结果、IFG 被清除
_BIC_SR_REGISTER_ON_EXIT (CPUOFF);//从0 (SR)清除 CPUOFF 位

在该程序中、我不知道如何检查温度结果、您能指导我。

我想知道 INTdegC、INTdegF、存储在哪里  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Alwala、

    您可以在_no_operation()行放置断点,然后为 IntDegC 或 IntDegF 添加表达式。  当到达断点时、您将看到变量值更新。