diff --git a/Core/Src/freertos.c b/Core/Src/freertos.c index fab278a..6857484 100644 --- a/Core/Src/freertos.c +++ b/Core/Src/freertos.c @@ -149,6 +149,14 @@ osThreadId daemonHandle; void StartDaemonTask(void *argument); // <--- 新的,带参数的标准 RTOS 线程声明 +const osThreadAttr_t buzzer_attributes = { + .name = "buzzer", + .priority = osPriorityNormal, + .stack_size = 512 * 4 +}; +osThreadId buzzerHandle; +extern void buzzerTask(void const *argument); + /* USER CODE END FunctionPrototypes */ void StartDefaultTask(void *argument); @@ -258,6 +266,7 @@ void MX_FREERTOS_Init(void) { //@Todo:daemon是测试版本 // 创建线程 daemonHandle = osThreadNew(StartDaemonTask, NULL, &daemon_attributes); // <--- 换成新的函数名 + buzzerHandle = osThreadNew(buzzerTask, NULL, &buzzer_attributes); /* USER CODE END RTOS_THREADS */ /* USER CODE BEGIN RTOS_EVENTS */ diff --git a/User_Code/application/indicator_app/ws2812status.c b/User_Code/application/indicator_app/ws2812status.c index 8bff7b0..e17bc95 100644 --- a/User_Code/application/indicator_app/ws2812status.c +++ b/User_Code/application/indicator_app/ws2812status.c @@ -54,12 +54,16 @@ void robotSelfCheck(void) void ws2812Task(void *argument) { (void) argument; + RC_ctrl_t rc_data; while (1) { RobotMode_t display_mode = RobotMode; if (display_mode != SYS_ERROR_OCCURRED && !RemoteControlIsOnline()) display_mode = REMOTE_NOT_CONNECTED; + if (RemoteControlReadSnapshot(&rc_data) && switch_is_down(rc_data.sw_d)) + display_mode = NORMAL_MODE; + switch (display_mode) { case NORMAL_MODE: @@ -69,10 +73,10 @@ void ws2812Task(void *argument) BlinkRed(); break; case REMOTE_NOT_CONNECTED: - BlinkYellow(); + BlinkRed(); break; case REMOTE_CONNECTED: - BlinkBlue(); + BlinkYellow(); break; case AUTO_SHOOTING_MODE: BlinkCyan(); diff --git a/User_Code/module/periph/buzzer/buzzer.cpp b/User_Code/module/periph/buzzer/buzzer.cpp index fd1f3bb..6af5061 100644 --- a/User_Code/module/periph/buzzer/buzzer.cpp +++ b/User_Code/module/periph/buzzer/buzzer.cpp @@ -24,6 +24,7 @@ extern "C" #include "cmsis_os.h" #include "tim.h" #include "delayticks.h" +#include "rc.h" #ifdef __cplusplus } @@ -154,6 +155,8 @@ static uint8_t bzply_count = 1; //单个音的节拍延时计数 /*---------------------FUNCTIONS---------------------*/ +#define BUZZER_TIM_CLK 5000000U + /*********************************************************************** ** 函 数 名: SetBuzzerOff() ** 函数说明: 关闭蜂鸣器 @@ -175,12 +178,9 @@ void SetBuzzerOff(void) ***********************************************************************/ void SetBuzzerFrequence(uint16_t freq) { - //buzzer --> tim12.channel2 - //分频后为1000000Hz - uint16_t period = 1000000 / freq - 1; - + uint16_t period = BUZZER_TIM_CLK / freq - 1; __HAL_TIM_SET_AUTORELOAD(&htim12, period); - __HAL_TIM_SET_COMPARE(&htim12, TIM_CHANNEL_2, period/2); + __HAL_TIM_SET_COMPARE(&htim12, TIM_CHANNEL_2, period / 2); } /*********************************************************************** @@ -223,17 +223,12 @@ void buzzer_note(uint16_t note, float volume) { volume = 0.0f; } - // 禁用定时器 __HAL_TIM_DISABLE(&htim12); - // 重置定时器计数器 htim12.Instance->CNT = 0; - // 设置自动重装载寄存器(ARR),以控制PWM信号的频率 - htim12.Instance->ARR = (1000000 / note - 1) * 1u; - // 设置比较寄存器(CCR3),以控制PWM信号的占空比 - htim12.Instance->CCR3 = (8 * 10500 / note - 1) * volume * 1u; - // 重新启用定时器 + uint32_t arr = BUZZER_TIM_CLK / note - 1; + htim12.Instance->ARR = arr; + htim12.Instance->CCR2 = (uint32_t) ((float) arr * volume * 0.5f); __HAL_TIM_ENABLE(&htim12); - // 启动PWM信号 HAL_TIM_PWM_Start(&htim12, TIM_CHANNEL_2); } @@ -245,77 +240,53 @@ void buzzer_note(uint16_t note, float volume) */ void systemstart_song(void) { - // 播放歌曲的旋律,每个音符后面都跟随一个延时 - // buzzer_note(50,0.5); - // delay_ticks(450); - // buzzer_note(53,0.5); - // delay_ticks(450); - // buzzer_note(60,0.5); - // delay_ticks(750); - // buzzer_note(50,0.5); - // delay_ticks(250); - // buzzer_note(60,0.5); - // delay_ticks(250); - // buzzer_note(50,0.5); - // delay_ticks(290); - // buzzer_note(60,0.5); - // delay_ticks(300); - // buzzer_note(75,0.5); - // delay_ticks(550); - // buzzer_note(80,0.5); - // delay_ticks(1000); - // 播放结束后关闭蜂鸣器 - // buzzer_off(); + HAL_TIM_PWM_Start(&htim12, TIM_CHANNEL_2); - // buzzer_note(85,0.5);//中音mi - // delay_ticks(450); - // buzzer_note(90,0.5); - // delay_ticks(450); - // buzzer_note(100,0.5); - // delay_ticks(750); - // buzzer_note(85,0.5); - // delay_ticks(250); - // buzzer_note(100,0.5); - // delay_ticks(250); - // buzzer_note(85,0.5); - // delay_ticks(290); - // buzzer_note(100,0.5); - // delay_ticks(300); - // buzzer_note(125,0.5); - // delay_ticks(550); - // buzzer_note(132,0.5); - // delay_ticks(1000); - - // buzzer_note(135,0.5);//高音mi - // delay_ticks(450); - // buzzer_note(140,0.5); - // delay_ticks(450); - // buzzer_note(160,0.5); - // delay_ticks(750); - // buzzer_note(135,0.5); - // delay_ticks(250); - // buzzer_note(160,0.5); - // delay_ticks(250); - // buzzer_note(135,0.5); - // delay_ticks(290); - // buzzer_note(160,0.5); - // delay_ticks(300); - // buzzer_note(200,0.5); - // delay_ticks(550); - // buzzer_note(210,0.5); - // delay_ticks(1000); - - //DJI - // buzzer_note(80, 0.5); //高音do - // HAL_Delay(450); - // buzzer_note(90, 0.5); //高音re - // HAL_Delay(450); - // buzzer_note(120, 0.5); //高音sol - // HAL_Delay(550); - - //SongSpring(); //为什么要演奏春日影!!! - - //SongLaoda(); + // 低音域 C4~B4 + buzzer_note(262, 0.5); + HAL_Delay(150); + buzzer_note(294, 0.5); + HAL_Delay(150); + buzzer_note(330, 0.5); + HAL_Delay(150); + buzzer_note(349, 0.5); + HAL_Delay(150); + buzzer_note(392, 0.5); + HAL_Delay(150); + buzzer_note(440, 0.5); + HAL_Delay(150); + buzzer_note(494, 0.5); + HAL_Delay(150); + // 中音域 C5~B5 + buzzer_note(523, 0.5); + HAL_Delay(150); + buzzer_note(587, 0.5); + HAL_Delay(150); + buzzer_note(659, 0.5); + HAL_Delay(150); + buzzer_note(698, 0.5); + HAL_Delay(150); + buzzer_note(784, 0.5); + HAL_Delay(150); + buzzer_note(880, 0.5); + HAL_Delay(150); + buzzer_note(988, 0.5); + HAL_Delay(150); + // 高音域 C6~B6 + buzzer_note(1046, 0.5); + HAL_Delay(150); + buzzer_note(1175, 0.5); + HAL_Delay(150); + buzzer_note(1318, 0.5); + HAL_Delay(150); + buzzer_note(1397, 0.5); + HAL_Delay(150); + buzzer_note(1568, 0.5); + HAL_Delay(150); + buzzer_note(1760, 0.5); + HAL_Delay(150); + buzzer_note(1976, 0.5); + HAL_Delay(400); buzzer_off(); } @@ -332,40 +303,58 @@ void SongSpring(void) //春日影!!! } } +void buzzerTask(void const *argument) +{ + (void) argument; + HAL_TIM_PWM_Start(&htim12, TIM_CHANNEL_2); + + for (;;) + { + if (!RemoteControlIsOnline()) + { + buzzer_note(659, 0.5); // E5 + osDelay(250); + buzzer_note(494, 0.5); // B4 + osDelay(250); + buzzer_off(); + osDelay(500); + } + else + { + osDelay(200); + } + } +} + void SongLaoda(void) { - // 播放歌曲牢大 - // buzzer_note(85,0.5);//中音mi - // delay_ticks(450); - // buzzer_note(90,0.5); - // delay_ticks(450); - buzzer_note(100, 0.5); //so + buzzer_note(494, 0.5); // B4 HAL_Delay(200); - buzzer_note(150, 0.5); //re + buzzer_note(740, 0.5); // F#5 HAL_Delay(200); - buzzer_note(135, 0.5); //do + buzzer_note(659, 0.5); // E5 HAL_Delay(200); - buzzer_note(100, 0.5); //so + buzzer_note(494, 0.5); // B4 HAL_Delay(500); - buzzer_note(135, 0.5); //do + buzzer_note(659, 0.5); // E5 HAL_Delay(170); - buzzer_note(150, 0.5); //re + buzzer_note(740, 0.5); // F#5 HAL_Delay(170); - buzzer_note(165, 0.5); //mi + buzzer_note(831, 0.5); // G#5 HAL_Delay(170); - buzzer_note(150, 0.5); //re + buzzer_note(740, 0.5); // F#5 HAL_Delay(170); - buzzer_note(135, 0.5); //do + buzzer_note(659, 0.5); // E5 HAL_Delay(170); - buzzer_note(150, 0.5); //re + buzzer_note(740, 0.5); // F#5 HAL_Delay(170); - buzzer_note(100, 0.5); //so + buzzer_note(494, 0.5); // B4 HAL_Delay(215); - buzzer_note(150, 0.5); //re + buzzer_note(740, 0.5); // F#5 HAL_Delay(215); - buzzer_note(135, 0.5); //do + buzzer_note(659, 0.5); // E5 HAL_Delay(215); - buzzer_note(100, 0.5); //so + buzzer_note(494, 0.5); // B4 HAL_Delay(215); // buzzer_note(45,0.5);//do diff --git a/User_Code/module/periph/buzzer/buzzer.h b/User_Code/module/periph/buzzer/buzzer.h index 7160966..07a110e 100644 --- a/User_Code/module/periph/buzzer/buzzer.h +++ b/User_Code/module/periph/buzzer/buzzer.h @@ -65,5 +65,4 @@ extern void PlayingSong(const uint16_t *song, uint16_t len); extern void PlayingSound(const uint8_t *sound, uint16_t len); - #endif diff --git a/ozonedeb/windebnewestux.jdebug.user b/ozonedeb/windebnewestux.jdebug.user index 2504603..966200e 100644 --- a/ozonedeb/windebnewestux.jdebug.user +++ b/ozonedeb/windebnewestux.jdebug.user @@ -1,49 +1,22 @@ -Breakpoint=D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/module/periph/power_meters/xiditech/xidipwmeter.c:73:1, State=BP_STATE_DISABLED -Breakpoint=D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/module/periph/power_meters/xiditech/xidipwmeter.c:77:1, State=BP_STATE_DISABLED -GraphedExpression="(QEKF_INS).Roll", Color=#a00909 -GraphedExpression="(BMI088).Temperature", Color=#09a01b -GraphedExpression="(QEKF_INS).Pitch", Color=#09a087 -OpenDocument="main.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/Core/Src/main.c", Line=72 -OpenDocument="stm32h7xx_hal_spi.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_spi.c", Line=958 -OpenDocument="tasks.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/Middlewares/Third_Party/FreeRTOS/Source/tasks.c", Line=2306 -OpenDocument="delayticks.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/bsp/delayticks/delayticks.c", Line=4 -OpenDocument="dev_cmd.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/user_task/dev_tasks/dev_cmd.c", Line=0 -OpenDocument="stm32h7xx_it.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/Core/Src/stm32h7xx_it.c", Line=306 -OpenDocument="xidipwmeter.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/module/periph/power_meters/xiditech/xidipwmeter.c", Line=37 -OpenDocument="stm32h7xx_hal.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c", Line=331 -OpenDocument="bsp_dwt.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/bsp/dwt/bsp_dwt.c", Line=109 -OpenDocument="QuaternionEKF.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/module/algorithm/ekf/QuaternionEKF.c", Line=436 -OpenDocument="buzzer.cpp", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/module/periph/buzzer/buzzer.cpp", Line=319 -OpenDocument="rc.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/module/periph/remote_control/rc.c", Line=0 -OpenDocument="bsp_fdcan.h", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/bsp/fdcan/bsp_fdcan.h", Line=51 -OpenDocument="port.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c", Line=217 -OpenDocument="daemon.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/module/software/daemon/daemon.c", Line=23 -OpenDocument="robot.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/application/robot.c", Line=33 -OpenDocument="cmsis_os2.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.c", Line=871 -OpenDocument="bsp_fdcan.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/bsp/fdcan/bsp_fdcan.c", Line=280 -OpenDocument="list.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/Middlewares/Third_Party/FreeRTOS/Source/list.c", Line=144 -OpenDocument="cmsis_gcc.h", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/Drivers/CMSIS/Include/cmsis_gcc.h", Line=264 -OpenDocument="freertos.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/Core/Src/freertos.c", Line=366 -OpenDocument="stm32h7xx_hal_fdcan.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_fdcan.c", Line=2032 -OpenDocument="ws2812.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/module/periph/ws2812/ws2812.c", Line=0 -OpenDocument="ins_task.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/User_Code/module/periph/imu/ins_task.c", Line=0 +GraphedExpression="(rc_ctrl[0]).ch3", DisplayFormat=DISPLAY_FORMAT_DEC, Color=#a00909 +OpenDocument="main.c", FilePath="D:/RM/Elec Control/TronOneH7_Scaffold/Core/Src/main.c", Line=64 OpenToolbar="Debug", Floating=0, x=0, y=0 OpenToolbar="Breakpoints", Floating=0, x=1, y=0 -OpenWindow="Call Stack", DockArea=RIGHT, x=0, y=0, w=681, h=225, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 -OpenWindow="Registers 1", DockArea=BOTTOM, x=1, y=0, w=271, h=181, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, FilteredItems=[], RefreshRate=1 +OpenWindow="Call Stack", DockArea=RIGHT, x=0, y=0, w=681, h=226, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 +OpenWindow="Registers 1", DockArea=BOTTOM, x=1, y=0, w=361, h=181, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, FilteredItems=[], RefreshRate=1 OpenWindow="Source Files", DockArea=LEFT, x=0, y=0, w=663, h=189, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 -OpenWindow="Disassembly", DockArea=BOTTOM, x=2, y=0, w=472, h=181, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 -OpenWindow="Break & Tracepoints", DockArea=LEFT, x=0, y=1, w=663, h=176, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, VectorCatchIndexMask=254 -OpenWindow="Memory 1", DockArea=BOTTOM, x=3, y=0, w=348, h=181, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, EditorAddress=0x2000B98C +OpenWindow="Disassembly", DockArea=BOTTOM, x=2, y=0, w=632, h=181, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 +OpenWindow="Break & Tracepoints", DockArea=LEFT, x=0, y=1, w=663, h=180, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, VectorCatchIndexMask=254 +OpenWindow="Memory 1", DockArea=BOTTOM, x=3, y=0, w=462, h=181, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, EditorAddress=0x2000B98C OpenWindow="Global Data", DockArea=RIGHT, x=0, y=2, w=681, h=260, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 -OpenWindow="Watched Data 1", DockArea=LEFT, x=0, y=2, w=663, h=206, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 +OpenWindow="Watched Data 1", DockArea=LEFT, x=0, y=2, w=663, h=202, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 OpenWindow="Functions", DockArea=LEFT, x=0, y=3, w=663, h=168, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 OpenWindow="Call Graph", DockArea=LEFT, x=0, y=3, w=663, h=168, TabPos=2, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 -OpenWindow="Data Sampling", DockArea=BOTTOM, x=0, y=0, w=826, h=181, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, VisibleTab=0, UniformSampleSpacing=0 -OpenWindow="Timeline", DockArea=RIGHT, x=0, y=1, w=681, h=255, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=1, DataPaneShown=1, PowerPaneShown=0, CodePaneShown=0, PinCursor="Cursor Movable", TimePerDiv="1 s / Div", TimeStampFormat="Time", DataGraphDrawAsPoints=0, DataGraphLegendShown=1, DataGraphUniformSampleSpacing=0, DataGraphLegendPosition="0;0", PowerGraphDrawAsPoints=0, PowerGraphLegendShown=0, PowerGraphAvgFilterTime=Off, PowerGraphAvgFilterLen=Off, PowerGraphUniformSampleSpacing=0, PowerGraphLegendPosition="484;-16", CodeGraphLegendShown=0, CodeGraphLegendPosition="498;0" +OpenWindow="Data Sampling", DockArea=BOTTOM, x=0, y=0, w=1102, h=181, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, VisibleTab=0, UniformSampleSpacing=0 +OpenWindow="Timeline", DockArea=RIGHT, x=0, y=1, w=681, h=254, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=1, DataPaneShown=1, PowerPaneShown=0, CodePaneShown=0, PinCursor="Cursor Movable", TimePerDiv="1 s / Div", TimeStampFormat="Time", DataGraphDrawAsPoints=0, DataGraphLegendShown=1, DataGraphUniformSampleSpacing=0, DataGraphLegendPosition="0;0", PowerGraphDrawAsPoints=0, PowerGraphLegendShown=0, PowerGraphAvgFilterTime=Off, PowerGraphAvgFilterLen=Off, PowerGraphUniformSampleSpacing=0, PowerGraphLegendPosition="484;-19", CodeGraphLegendShown=0, CodeGraphLegendPosition="498;0" OpenWindow="Console", DockArea=LEFT, x=0, y=3, w=663, h=168, TabPos=0, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 -OpenWindow="FreeRTOS", DockArea=RIGHT, x=0, y=0, w=681, h=225, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, Showing="Task List" +OpenWindow="FreeRTOS", DockArea=RIGHT, x=0, y=0, w=681, h=226, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, Showing="Task List" TableHeader="Call Graph", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Stack Total";"Stack Local";"Code Total";"Code Local";"Depth";"Called From"], ColWidths=[384;100;100;100;100;100;102] TableHeader="Task List", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Run Count";"Priority";"Status";"Timeout";"Stack Info (Free / Size)";"ID";"Mutex Count";"Notified Value";"Notify State"], ColWidths=[110;110;110;110;110;110;110;110;110;110] TableHeader="Functions", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Address";"Size";"#Insts";"Source"], ColWidths=[1164;100;100;100;100] @@ -51,23 +24,12 @@ TableHeader="Global Data", SortCol="Name", SortOrder="ASCENDING", VisibleCols=[" TableHeader="Vector Catches", SortCol="None", SortOrder="ASCENDING", VisibleCols=["";"Vector Catch";"Description"], ColWidths=[50;300;500] TableHeader="Break & Tracepoints", SortCol="None", SortOrder="ASCENDING", VisibleCols=["";"Type";"Location";"Extras"], ColWidths=[100;100;142;321] TableHeader="Source Files", SortCol="File", SortOrder="ASCENDING", VisibleCols=["File";"Status";"Size";"#Insts";"Path"], ColWidths=[229;100;100;100;917] -TableHeader="Data Sampling Table", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Index";"Time";" (QEKF_INS).Roll";" (BMI088).Temperature";" (QEKF_INS).Pitch"], ColWidths=[100;100;100;100;100] -TableHeader="Data Sampling Setup", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Type";"Value";"Min";"Max";"Average";"# Changes";"Min. Change";"Max. Change"], ColWidths=[320;100;100;100;100;100;100;102;102] +TableHeader="Data Sampling Table", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Index";"Time";" (rc_ctrl[0]).ch3"], ColWidths=[100;100;100] +TableHeader="Data Sampling Setup", SortCol="Value", SortOrder="ASCENDING", VisibleCols=["Expression";"Type";"Value";"Min";"Max";"Average";"# Changes";"Min. Change";"Max. Change"], ColWidths=[320;100;100;100;100;100;100;102;102] TableHeader="Power Sampling", SortCol="Index", SortOrder="ASCENDING", VisibleCols=["Index";"Time";"Ch 0"], ColWidths=[100;100;100] TableHeader="Registers 1", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Description"], ColWidths=[100;105;259] -TableHeader="Watched Data 1", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Value";"Type";"Location";"Refresh"], ColWidths=[171;101;162;112;100] +TableHeader="Watched Data 1", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Value";"Type";"Location";"Refresh"], ColWidths=[171;101;162;112;117] TableHeader="RegisterSelectionDialog", SortCol="None", SortOrder="ASCENDING", VisibleCols=[], ColWidths=[] TableHeader="Call Stack", SortCol="Function", SortOrder="ASCENDING", VisibleCols=["Function";"Stack Frame";"Source";"PC";"Return Address";"Stack Used"], ColWidths=[110;126;190;100;190;100] TableHeader="TargetExceptionDialog", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Address";"Description"], ColWidths=[27;27;27;32] -WatchedExpression="QEKF_INS", RefreshRate=2, Window=Watched Data 1 -WatchedExpression="BMI088", RefreshRate=2, Window=Watched Data 1 -WatchedExpression="RobotMode_t", Window=Watched Data 1 -WatchedExpression="power_meter_instance", RefreshRate=2, Window=Watched Data 1 -WatchedExpression="pm_voltage", RefreshRate=2, Window=Watched Data 1 -WatchedExpression="pm_current", RefreshRate=2, Window=Watched Data 1 -WatchedExpression="measure.voltage", Window=Watched Data 1 -WatchedExpression="PowerMeterInstance", RefreshRate=2, Window=Watched Data 1 -WatchedExpression="idx", RefreshRate=2, Window=Watched Data 1 -WatchedExpression="rxbuff", RefreshRate=2, Window=Watched Data 1 -WatchedExpression="voltage_raw", RefreshRate=2, Window=Watched Data 1 -WatchedExpression="_instance", RefreshRate=2, Window=Watched Data 1 \ No newline at end of file +WatchedExpression="rc_ctrl", RefreshRate=1, Window=Watched Data 1 \ No newline at end of file