123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #ifndef __TOOL_H__
- #define __TOOL_H__
- #include "arm_math.h"
- #include <stdbool.h>
- #include <stdint.h>
- #include <string.h>
- #include <setjmp.h>
- #include "sdk_common.h"
- #include "SEGGER_RTT.h"
- #include "usr_config.h"
- /*
- (5)
- #pragma pack(push, 1)
- struct {
- signed int Sine1;
- signed int Sine2;
- signed int Sine3;
- } acValBuffer;
- #pragma pack(pop)
- 上面是你要发送的结构体,自己定义。
- (6)在你要发送的地方赋值并发送,例如中断:
- acValBuffer.Sine1 = Test_Counter1;
- acValBuffer.Sine2 = Test_Counter2;
- acValBuffer.Sine2 = Test_Counter3;
- SEGGER_RTT_Write(JS_RTT_Channel, &acValBuffer, sizeof(acValBuffer));
- (7)下面是重点!!!官方没有提到的。例如我想发四个数,两个int型,两个short型。
- #pragma pack(push, 1)
- struct {
- signed int Sine1;
- signed int Sine2;
- short Sine3;
- short Sine4;
- } acValBuffer;
- #pragma pack(pop)
- 那么对应的初始化要改为"JScope_I4I4I4"这个参数就要改成"JScope_I4I4I2I2“
- */
- #pragma pack(push, 1)
- typedef struct {
- signed int Sine1;
- signed int Sine2;
- signed int Sine3;
- signed int Sine4;
- signed int Sine5;
- signed int Sine6;
- }acValBuffer_t;
- #pragma pack(pop)
- #define CHECK_TIMECONSUMING_START uint32_t cnt1 = 0, cnt2 = 0; \
- static char string[100]; \
- cnt1 = NRF_RTC0->COUNTER
- #define CHECK_TIMECONSUMING_END cnt2 = NRF_RTC0->COUNTER; \
- sprintf(string,"=====>time consuming:%02f us\r\n",(cnt2-cnt1)/32.768 * 1000); \
- DEBUG_LOG("%s",string)
- extern acValBuffer_t acValBuffer;
- void JS_RTT_Init(void);
- void JS_RTT_Print(signed int Sine1,signed int Sine2,signed int Sine3);
- void JS_RTT_Print_06(signed int Sine1,signed int Sine2,signed int Sine3,signed int Sine4,signed int Sine5,signed int Sine6);
- float32_t CoefficientVariation(double *p_array, uint32_t len);
- void Tool_Init(void);
- #endif
|