Hi,
目前使用CC2640R2F進行開發,
SDK: simplelink_cc2640r2_sdk_3_40_00_10
CCS: Version: 9.3.0.00012
其中調用了math.h中的pow、log及sqrt等函數進行運算,
但在執行了幾秒後都會當機無法運作。
請問是否有什麼前置處理需要設定?
Kevin Qiu1:
这些函数的运算量和简单的求和,求积不同,运算量可能比较大。 CC2640是不带浮点的,可能处理不了这些复杂运算,另外看下运算有没有超出数据类型范围
Viki Shi:
照理说只要包含math.h头文件,然后调用即可。请问除此之外,你还做了其他改动吗?具体报错信息是什么?
Curly Lin:
回复 Kevin Qiu1:
變數都是以double宣告,我想應該不會超過才是
Curly Lin:
回复 Viki Shi:
我在simple peripherals 範例裡加上adc,再將adc轉換的電壓值取log及平方根運算。
約莫10來次,mcu的訊息就停止不吐,ble也斷線。
Viki Shi:
回复 Curly Lin:
是否能追踪一下代码,看卡死在哪一步
Curly Lin:
回复 Viki Shi:
目前查到因為運算過程中會有浮點數,若將浮點數print出來就會卡死。
YiKai Chen:
回复 Curly Lin:
你如何將浮點數print出來?
Curly Lin:
回复 YiKai Chen:
我自己實作一個print function取代sample code中的Display_print
uart的部分,使用npi_tl_uart.c裡的函數。
Curly Lin:
回复 YiKai Chen:
我利用npi_tl_uart.c裡的函數,自己實作一個print function取代原本的Display_print。
YiKai Chen:
回复 Curly Lin:
你有在config檔中加上 System.extendedFormats = '%$L%$S%$F%f';嗎?