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.
该款芯片的计数手册中关于0摄氏度时温度对应的数值和温度斜率给出了下面的说明
//Slope of temperature sensor (deg. C / ADC code, fixed pt Q15 format)
#define getTempSlope() (*(int (*)(void))0x3D7E82)()
//ADC code corresponding to temperature sensor output at 0-degreesC
#define getTempOffset() (*(int (*)(void))0x3D7E85)()
但当我用
getslope=getTempSlope();
getoffset=getTempOffset();
读取对应地址中存储的值时,在在线调试的时候,会进入一个保留的中断,而读不出来存储器中的值,请问这是怎么回事儿呢?
我用安装的controlsuite中的温度读取例程,也会出现这个问题,这个例程是你们官方写的吧,为什么也不对呢?
楼主你好!
楼主应该用的TMX的芯片吧,因为你手上的TMX样片较早出来,其中0x3D7E82和0x3D7E85中并未写入合适值而是0XFFFF,当PC跳到这个地址后取到的是ITRAP1指令,因此进入到ILLEGAL_ISR中断。
然而正式量产的片子也即TMS的片子,出厂时会写入合适跳转值,因此就不会有这个问题。
楼主可以参看例程中的说明如下:
//###########################################################################
// Description:
//! \addtogroup f2806x_example_list
//! <h1> ADC Temperature Sensor Conversion (adc_temp_sensor_conv)</h1>
//!
//! This example shows how to convert a raw ADC temperature sensor reading
//! into deg. C and deg. K. Internal temperature is sampled continuously
//! through ADCINA5. The coefficients required to compensate for temperature
//! offset are read from TI OTP.
//!
//! \note
//! THIS EXAMPLE USES VARIABLES STORED IN OTP DURING FACTORY TEST. THESE OTP
//! LOCATIONS ,0x3D7E90 to 0x3D7EA4, MAY NOT BE POPULATED. ENSURE THAT THESE
//! MEMORY LOCATIONS IN TI OTP ARE POPULATED WITH VALUES DIFFERENT FROM
//! 0XFFFF