Hello, everyone! I am using the ADC nrf52832 to read the NTC temperature, and the NTC calculation formula is used in the application as follows:
#define NTC_B 3950.0
#define NTC_T2 298.15 //(273.15+25)
#define NTC_R 10000.0 //(273.15+25)
#define NTC_Rt(u) (u*NTC_R)/(VCC-u) // The unit mv
# define GET_NTC_TEMP (u) (1 / (log (NTC_Rt (u)/NTC_R)/NTC_B + 1 / NTC_T2) - 273.15 + 0.5).
But using that executes GET_NTC_TEMP () debugging information submitted to the following error:
[00:00:09. 320495] [1; 31 m < err > OS: * * * * * HARD FAULT * * * * * [0 m
[00:00:09.320,526] [1;31m<err> os: Debug event[0m]
[00:00:09.320,556] [1;31m<err> os: r0/a1: 0x00000000 r1/a2: 0x40c02d80 r2/a3: 0x00000000[0m]
[00:00:09.320,556] [1;31m<err> os: r3/a4: 0x3fe00000 r12/ip: 0x00000000 r14/lr: 0x000112d7[0m]
[00:00:09.320,556] [1;31m<err> os: xpsr: 0x61000000[0m]
[00:00:05.320,587] [1;31m<err> os: s[0]: 0x418a1680 s[1]: 0x3fd818af s[2]: 0x00000000 s[3]: 0x00000000[0m]
[00:00:09.320,587] [1;31m<err> os: s[4]: 0x00000000 s[5]: 0x00000000 s[6]: 0x00000000 s[7]: 0x00000000[0m]
[00:00:09.320,617] [1;31m<err> os: s[8]: 0x00000000 s[9]: 0x00000000 s[10]: 0x00000000 s[11]: 0x00000000[0m]
[00:00:09.320,617] [1;31m<err> os: s[12]: 0x00000000 s[13]: 0x00000000 s[14]: 0x00000000 s[15]: 0x00000000[0m]
[00:00:09.320,648] [1;31m<err> os: fpscr: 0x00000000[0m]
[00:00:09.320,648] [1;31m<err> os: Faulting instruction address (r15/pc): 0x000112da[0m]
[00:00:09.320,709] [1;31m<err> os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0[0m]
[00:00:09.320,739] [1;31m<err> os: Current thread: 0x20002e68 (unknown)[0m
[00:00:10.887,664] [1;31m<err> fatal_error: Resetting system[0m]
In the application, I configured CONFIG_CBPRINTF_FP_SUPPORT=y
CONFIG_IDLE_STACK_SIZE=3072
CONFIG_FPU=y
CONFIG_MAIN_STACK_SIZE=1024;
Seeking solutions, thank you!