1
0
forked from me/IronOS

Tweak pwm timings, improve Voltage init for more stable startup

This commit is contained in:
Ben V. Brown
2018-11-09 13:14:20 +11:00
parent 18a8461b99
commit c83174862a
6 changed files with 33 additions and 23 deletions

View File

@@ -313,7 +313,7 @@ static void MX_TIM2_Init(void) {
//Trade off is the slower the PWM output the slower we can respond and we gain temperature accuracy in settling time, //Trade off is the slower the PWM output the slower we can respond and we gain temperature accuracy in settling time,
//But it increases the time delay between the heat cycle and the measurement and calculate cycle //But it increases the time delay between the heat cycle and the measurement and calculate cycle
htim2.Init.CounterMode = TIM_COUNTERMODE_UP; htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 255+56; htim2.Init.Period = 255+60;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV4; // 4mhz before divide htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV4; // 4mhz before divide
htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
HAL_TIM_Base_Init(&htim2); HAL_TIM_Base_Init(&htim2);
@@ -329,7 +329,7 @@ static void MX_TIM2_Init(void) {
HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig); HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig);
sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 255+47; //255 is the largest time period of the drive signal, and the 47 offsets this around 5ms afterwards sConfigOC.Pulse = 255+50; //255 is the largest time period of the drive signal, and the 47 offsets this around 5ms afterwards
/* /*
* It takes 4 milliseconds for output to be stable after PWM turns off. * It takes 4 milliseconds for output to be stable after PWM turns off.
* Assume ADC samples in 0.5ms * Assume ADC samples in 0.5ms

View File

@@ -133,13 +133,13 @@ uint16_t getInputVoltageX10(uint16_t divisor) {
// Multiplying ADC max by 4 for additional calibration options, // Multiplying ADC max by 4 for additional calibration options,
// ideal term is 467 // ideal term is 467
#define BATTFILTERDEPTH 32 #define BATTFILTERDEPTH 32
static uint8_t preFillneeded = 1; static uint8_t preFillneeded = 10;
static uint32_t samples[BATTFILTERDEPTH]; static uint32_t samples[BATTFILTERDEPTH];
static uint8_t index = 0; static uint8_t index = 0;
if (preFillneeded) { if (preFillneeded) {
for (uint8_t i = 0; i < BATTFILTERDEPTH; i++) for (uint8_t i = 0; i < BATTFILTERDEPTH; i++)
samples[i] = getADC(1); samples[i] = getADC(1);
preFillneeded = 0; preFillneeded--;
} }
samples[index] = getADC(1); samples[index] = getADC(1);
index = (index + 1) % BATTFILTERDEPTH; index = (index + 1) % BATTFILTERDEPTH;
@@ -409,10 +409,7 @@ uint8_t getTipPWM() {
void setTipPWM(uint8_t pulse) { void setTipPWM(uint8_t pulse) {
PWMSafetyTimer = 2; // This is decremented in the handler for PWM so that the tip pwm is PWMSafetyTimer = 2; // This is decremented in the handler for PWM so that the tip pwm is
// disabled if the PID task is not scheduled often enough. // disabled if the PID task is not scheduled often enough.
if (pulse > 255)
pulse = 255;
if (pulse == 0) // Need to have some pulse to keep the PID controller moving forward as these end of cycle completions move the thread along
pulse = 1;
pendingPWM = pulse; pendingPWM = pulse;
} }
@@ -430,11 +427,9 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
// increased safety // increased safety
htim2.Instance->CCR4 = pendingPWM; htim2.Instance->CCR4 = pendingPWM;
if (htim2.Instance->CCR4 && PWMSafetyTimer) { if (htim2.Instance->CCR4 && PWMSafetyTimer) {
htim3.Instance->CCR1 = 50;
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
} else { } else {
HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1); HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1);
htim3.Instance->CCR1 = 0;
} }
} else if (htim->Instance == TIM1) { } else if (htim->Instance == TIM1) {
// STM uses this for internal functions as a counter for timeouts // STM uses this for internal functions as a counter for timeouts
@@ -447,7 +442,6 @@ void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) {
// This was a when the PWM for the output has timed out // This was a when the PWM for the output has timed out
if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_4) { if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_4) {
HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1); HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1);
htim3.Instance->CCR1 = 0;
} }
} }
} }

View File

@@ -914,13 +914,7 @@ void startGUITask(void const *argument __unused) {
void startPIDTask(void const *argument __unused) { void startPIDTask(void const *argument __unused) {
/* /*
* We take the current tip temperature & evaluate the next step for the tip * We take the current tip temperature & evaluate the next step for the tip
* control PWM * control PWM.
* Tip temperature is measured by getTipTemperature(1) so we get instant
* result
* This comes in Cx10 format
* We then control the tip temperature to aim for the setpoint in the settings
* struct
*
*/ */
setTipMilliWatts(0); // disable the output driver if the output is set to be off setTipMilliWatts(0); // disable the output driver if the output is set to be off
#ifdef MODEL_TS80 #ifdef MODEL_TS80
@@ -934,7 +928,8 @@ void startPIDTask(void const *argument __unused) {
pidTaskNotification = xTaskGetCurrentTaskHandle(); pidTaskNotification = xTaskGetCurrentTaskHandle();
for (;;) { for (;;) {
if (ulTaskNotifyTake(pdTRUE, 50)) {
if (ulTaskNotifyTake(pdTRUE, 1000)) {
// Wait a max of 50ms // Wait a max of 50ms
// This is a call to block this thread until the ADC does its samples // This is a call to block this thread until the ADC does its samples
uint16_t rawTemp = getTipRawTemp(1); // get instantaneous reading uint16_t rawTemp = getTipRawTemp(1); // get instantaneous reading

View File

@@ -19,7 +19,7 @@
<option id="com.atollic.truestudio.toolchain_options.mcu.1436647432" name="Microcontroller" superClass="com.atollic.truestudio.toolchain_options.mcu" useByScannerDiscovery="false" value="STM32F103T8" valueType="string"/> <option id="com.atollic.truestudio.toolchain_options.mcu.1436647432" name="Microcontroller" superClass="com.atollic.truestudio.toolchain_options.mcu" useByScannerDiscovery="false" value="STM32F103T8" valueType="string"/>
<option id="com.atollic.truestudio.toolchain_options.vendor.1169826438" name="Vendor name" superClass="com.atollic.truestudio.toolchain_options.vendor" useByScannerDiscovery="false" value="STMicroelectronics" valueType="string"/> <option id="com.atollic.truestudio.toolchain_options.vendor.1169826438" name="Vendor name" superClass="com.atollic.truestudio.toolchain_options.vendor" useByScannerDiscovery="false" value="STMicroelectronics" valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.atollic.truestudio.exe.release.toolchain.platform.1125330428" isAbstract="false" name="release platform" superClass="com.atollic.truestudio.exe.release.toolchain.platform"/> <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.atollic.truestudio.exe.release.toolchain.platform.1125330428" isAbstract="false" name="release platform" superClass="com.atollic.truestudio.exe.release.toolchain.platform"/>
<builder buildPath="${workspace_loc:/TS100A}/Release" customBuilderProperties="toolChainpathType=1|toolChainpathString=C:\\Program Files (x86)\\Atollic\\TrueSTUDIO for STM32 9.0.1\\ARMTools\\bin|" id="com.atollic.truestudio.mbs.builder1.1682214826" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="com.atollic.truestudio.mbs.builder1"/> <builder buildPath="${workspace_loc:/TS100A}/Release" customBuilderProperties="toolChainpathString=C:\\Program Files (x86)\\Atollic\\TrueSTUDIO for STM32 9.1.0\\ARMTools\\bin|toolChainpathType=1|com.atollic.truestudio.common_options.target.vendor=STMicroelectronics|com.atollic.truestudio.common_options.target.mcu=STM32F103T8|" id="com.atollic.truestudio.mbs.builder1.1682214826" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="com.atollic.truestudio.mbs.builder1"/>
<tool id="com.atollic.truestudio.exe.release.toolchain.as.5806016" name="Assembler" superClass="com.atollic.truestudio.exe.release.toolchain.as"> <tool id="com.atollic.truestudio.exe.release.toolchain.as.5806016" name="Assembler" superClass="com.atollic.truestudio.exe.release.toolchain.as">
<option id="com.atollic.truestudio.common_options.target.endianess.1911688133" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/> <option id="com.atollic.truestudio.common_options.target.endianess.1911688133" name="Endianess" superClass="com.atollic.truestudio.common_options.target.endianess" useByScannerDiscovery="false"/>
<option id="com.atollic.truestudio.common_options.target.mcpu.1179040963" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/> <option id="com.atollic.truestudio.common_options.target.mcpu.1179040963" name="Microcontroller" superClass="com.atollic.truestudio.common_options.target.mcpu" useByScannerDiscovery="false" value="STM32F103T8" valueType="enumerated"/>
@@ -45,12 +45,13 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}/../TS100\CMSIS\core&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}/../TS100\CMSIS\core&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}/../TS100\CMSIS\device&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}/../TS100\CMSIS\device&quot;"/>
</option> </option>
<option id="com.atollic.truestudio.common_options.target.interwork.1685024437" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
<inputType id="com.atollic.truestudio.as.input.640267647" name="Input" superClass="com.atollic.truestudio.as.input"/> <inputType id="com.atollic.truestudio.as.input.640267647" name="Input" superClass="com.atollic.truestudio.as.input"/>
</tool> </tool>
<tool id="com.atollic.truestudio.exe.release.toolchain.gcc.45651038" name="C Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gcc"> <tool id="com.atollic.truestudio.exe.release.toolchain.gcc.45651038" name="C Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gcc">
<option id="com.atollic.truestudio.gcc.symbols.defined.1383071182" name="Defined symbols" superClass="com.atollic.truestudio.gcc.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols"> <option id="com.atollic.truestudio.gcc.symbols.defined.1383071182" name="Defined symbols" superClass="com.atollic.truestudio.gcc.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="STM32F103T8Ux"/> <listOptionValue builtIn="false" value="STM32F103T8Ux"/>
<listOptionValue builtIn="false" value="MODEL_TS80"/> <listOptionValue builtIn="false" value="MODEL_TS100"/>
<listOptionValue builtIn="false" value="STM32F1"/> <listOptionValue builtIn="false" value="STM32F1"/>
<listOptionValue builtIn="false" value="STM32"/> <listOptionValue builtIn="false" value="STM32"/>
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/> <listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
@@ -77,6 +78,7 @@
<option id="com.atollic.truestudio.gcc.optimization.prep_data.295328985" name="Prepare dead data removal" superClass="com.atollic.truestudio.gcc.optimization.prep_data" useByScannerDiscovery="false" value="true" valueType="boolean"/> <option id="com.atollic.truestudio.gcc.optimization.prep_data.295328985" name="Prepare dead data removal" superClass="com.atollic.truestudio.gcc.optimization.prep_data" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option id="com.atollic.truestudio.exe.release.toolchain.gcc.debug.info.846808695" name="Debug Level" superClass="com.atollic.truestudio.exe.release.toolchain.gcc.debug.info" useByScannerDiscovery="false" value="com.atollic.truestudio.gcc.debug.info.3" valueType="enumerated"/> <option id="com.atollic.truestudio.exe.release.toolchain.gcc.debug.info.846808695" name="Debug Level" superClass="com.atollic.truestudio.exe.release.toolchain.gcc.debug.info" useByScannerDiscovery="false" value="com.atollic.truestudio.gcc.debug.info.3" valueType="enumerated"/>
<option id="com.atollic.truestudio.gcc.warnings.extra.1975907231" name="Enable extra warning flags" superClass="com.atollic.truestudio.gcc.warnings.extra" useByScannerDiscovery="false" value="true" valueType="boolean"/> <option id="com.atollic.truestudio.gcc.warnings.extra.1975907231" name="Enable extra warning flags" superClass="com.atollic.truestudio.gcc.warnings.extra" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option id="com.atollic.truestudio.common_options.target.interwork.1740987679" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
<inputType id="com.atollic.truestudio.gcc.input.118701765" superClass="com.atollic.truestudio.gcc.input"/> <inputType id="com.atollic.truestudio.gcc.input.118701765" superClass="com.atollic.truestudio.gcc.input"/>
</tool> </tool>
<tool id="com.atollic.truestudio.exe.release.toolchain.ld.967762086" name="C Linker" superClass="com.atollic.truestudio.exe.release.toolchain.ld"> <tool id="com.atollic.truestudio.exe.release.toolchain.ld.967762086" name="C Linker" superClass="com.atollic.truestudio.exe.release.toolchain.ld">
@@ -87,11 +89,12 @@
<option id="com.atollic.truestudio.common_options.target.fpu.44307830" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu"/> <option id="com.atollic.truestudio.common_options.target.fpu.44307830" name="Floating point" superClass="com.atollic.truestudio.common_options.target.fpu"/>
<option id="com.atollic.truestudio.ld.general.scriptfile.755006424" name="Linker script" superClass="com.atollic.truestudio.ld.general.scriptfile" value="../stm32_flash.ld" valueType="string"/> <option id="com.atollic.truestudio.ld.general.scriptfile.755006424" name="Linker script" superClass="com.atollic.truestudio.ld.general.scriptfile" value="../stm32_flash.ld" valueType="string"/>
<option id="com.atollic.truestudio.ld.optimization.do_garbage.2103581239" name="Dead code removal " superClass="com.atollic.truestudio.ld.optimization.do_garbage" value="true" valueType="boolean"/> <option id="com.atollic.truestudio.ld.optimization.do_garbage.2103581239" name="Dead code removal " superClass="com.atollic.truestudio.ld.optimization.do_garbage" value="true" valueType="boolean"/>
<option id="com.atollic.truestudio.common_options.target.interwork.234525005" superClass="com.atollic.truestudio.common_options.target.interwork"/>
</tool> </tool>
<tool id="com.atollic.truestudio.exe.release.toolchain.gpp.93636755" name="C++ Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gpp"> <tool id="com.atollic.truestudio.exe.release.toolchain.gpp.93636755" name="C++ Compiler" superClass="com.atollic.truestudio.exe.release.toolchain.gpp">
<option id="com.atollic.truestudio.gpp.symbols.defined.552082963" name="Defined symbols" superClass="com.atollic.truestudio.gpp.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols"> <option id="com.atollic.truestudio.gpp.symbols.defined.552082963" name="Defined symbols" superClass="com.atollic.truestudio.gpp.symbols.defined" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="STM32F103T8Ux"/> <listOptionValue builtIn="false" value="STM32F103T8Ux"/>
<listOptionValue builtIn="false" value="MODEL_TS80"/> <listOptionValue builtIn="false" value="MODEL_TS100"/>
<listOptionValue builtIn="false" value="STM32F1"/> <listOptionValue builtIn="false" value="STM32F1"/>
<listOptionValue builtIn="false" value="STM32"/> <listOptionValue builtIn="false" value="STM32"/>
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/> <listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
@@ -121,6 +124,7 @@
<option id="com.atollic.truestudio.exe.release.toolchain.gpp.debug.info.2091338048" name="Debug Level" superClass="com.atollic.truestudio.exe.release.toolchain.gpp.debug.info" useByScannerDiscovery="false" value="com.atollic.truestudio.gpp.debug.info.3" valueType="enumerated"/> <option id="com.atollic.truestudio.exe.release.toolchain.gpp.debug.info.2091338048" name="Debug Level" superClass="com.atollic.truestudio.exe.release.toolchain.gpp.debug.info" useByScannerDiscovery="false" value="com.atollic.truestudio.gpp.debug.info.3" valueType="enumerated"/>
<option id="com.atollic.truestudio.gpp.warnings.extra.843614419" name="Enable extra warning flags" superClass="com.atollic.truestudio.gpp.warnings.extra" useByScannerDiscovery="false" value="true" valueType="boolean"/> <option id="com.atollic.truestudio.gpp.warnings.extra.843614419" name="Enable extra warning flags" superClass="com.atollic.truestudio.gpp.warnings.extra" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option id="com.atollic.truestudio.gpp.cppstandard.1895895086" name="C++ standard" superClass="com.atollic.truestudio.gpp.cppstandard" useByScannerDiscovery="false" value="com.atollic.truestudio.gpp.cppstandard.gnupp14" valueType="enumerated"/> <option id="com.atollic.truestudio.gpp.cppstandard.1895895086" name="C++ standard" superClass="com.atollic.truestudio.gpp.cppstandard" useByScannerDiscovery="false" value="com.atollic.truestudio.gpp.cppstandard.gnupp14" valueType="enumerated"/>
<option id="com.atollic.truestudio.common_options.target.interwork.429864345" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
<inputType id="com.atollic.truestudio.gpp.input.1156264590" superClass="com.atollic.truestudio.gpp.input"/> <inputType id="com.atollic.truestudio.gpp.input.1156264590" superClass="com.atollic.truestudio.gpp.input"/>
</tool> </tool>
<tool id="com.atollic.truestudio.exe.release.toolchain.ldcc.407189665" name="C++ Linker" superClass="com.atollic.truestudio.exe.release.toolchain.ldcc"> <tool id="com.atollic.truestudio.exe.release.toolchain.ldcc.407189665" name="C++ Linker" superClass="com.atollic.truestudio.exe.release.toolchain.ldcc">
@@ -132,6 +136,8 @@
<option id="com.atollic.truestudio.ldcc.optimization.do_garbage.324971909" name="Dead code removal" superClass="com.atollic.truestudio.ldcc.optimization.do_garbage" useByScannerDiscovery="false" value="true" valueType="boolean"/> <option id="com.atollic.truestudio.ldcc.optimization.do_garbage.324971909" name="Dead code removal" superClass="com.atollic.truestudio.ldcc.optimization.do_garbage" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option id="com.atollic.truestudio.ldcc.general.scriptfile.59845520" name="Linker script" superClass="com.atollic.truestudio.ldcc.general.scriptfile" useByScannerDiscovery="false" value="${workspace_loc:/${ProjName}}/../TS100/LinkerScript.ld" valueType="string"/> <option id="com.atollic.truestudio.ldcc.general.scriptfile.59845520" name="Linker script" superClass="com.atollic.truestudio.ldcc.general.scriptfile" useByScannerDiscovery="false" value="${workspace_loc:/${ProjName}}/../TS100/LinkerScript.ld" valueType="string"/>
<option id="com.atollic.truestudio.ldcc.misc.linkerflags.2127852186" name="Other options" superClass="com.atollic.truestudio.ldcc.misc.linkerflags" useByScannerDiscovery="false" value="-Wl,-cref,-u,Reset_Handler,-lm -Os -flto -Wl,--undefined=vTaskSwitchContext" valueType="string"/> <option id="com.atollic.truestudio.ldcc.misc.linkerflags.2127852186" name="Other options" superClass="com.atollic.truestudio.ldcc.misc.linkerflags" useByScannerDiscovery="false" value="-Wl,-cref,-u,Reset_Handler,-lm -Os -flto -Wl,--undefined=vTaskSwitchContext" valueType="string"/>
<option id="com.atollic.truestudio.ldcc.optimization.malloc_page_size.1711302014" superClass="com.atollic.truestudio.ldcc.optimization.malloc_page_size" useByScannerDiscovery="false" value="com.atollic.truestudio.ldcc.optimization.malloc_page_size.128" valueType="enumerated"/>
<option id="com.atollic.truestudio.common_options.target.interwork.1666808603" superClass="com.atollic.truestudio.common_options.target.interwork" useByScannerDiscovery="false"/>
<inputType id="com.atollic.truestudio.ldcc.input.1102687442" name="Input" superClass="com.atollic.truestudio.ldcc.input"> <inputType id="com.atollic.truestudio.ldcc.input.1102687442" name="Input" superClass="com.atollic.truestudio.ldcc.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/> <additionalInput kind="additionalinput" paths="$(LIBS)"/>

View File

@@ -150,11 +150,21 @@
<type>1</type> <type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/TS100/inc/hardware.h</locationURI> <locationURI>PARENT-1-PROJECT_LOC/TS100/inc/hardware.h</locationURI>
</link> </link>
<link>
<name>inc/history.hpp</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/TS100/inc/history.hpp</locationURI>
</link>
<link> <link>
<name>inc/main.hpp</name> <name>inc/main.hpp</name>
<type>1</type> <type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/TS100/inc/main.hpp</locationURI> <locationURI>PARENT-1-PROJECT_LOC/TS100/inc/main.hpp</locationURI>
</link> </link>
<link>
<name>inc/power.hpp</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/TS100/inc/power.hpp</locationURI>
</link>
<link> <link>
<name>inc/stm32f1xx_hal_conf.h</name> <name>inc/stm32f1xx_hal_conf.h</name>
<type>1</type> <type>1</type>
@@ -220,6 +230,11 @@
<type>1</type> <type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/TS100/src/main.cpp</locationURI> <locationURI>PARENT-1-PROJECT_LOC/TS100/src/main.cpp</locationURI>
</link> </link>
<link>
<name>src/power.cpp</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/TS100/src/power.cpp</locationURI>
</link>
<link> <link>
<name>src/stm32f1xx_hal_msp.c</name> <name>src/stm32f1xx_hal_msp.c</name>
<type>1</type> <type>1</type>

View File

@@ -4,7 +4,7 @@
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> <extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="523641172746736302" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true"> <provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="1908924148938516785" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/> <language-scope id="org.eclipse.cdt.core.g++"/>
</provider> </provider>