Skip to content
Snippets Groups Projects
Commit c8498459 authored by Flax's avatar Flax
Browse files

Corrected EXTI configuration.

Added UART debug in regulation module, compatible with https://github.com/nathandunk/BetterSerialPlotter
parent 234eeeb1
Branches master
No related tags found
No related merge requests found
......@@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="904823471204602363" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1052361041984852345" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -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.g++"/>
</provider>
......@@ -16,7 +16,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="904823471204602363" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1052361041984852345" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -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.g++"/>
</provider>
......
......@@ -55,7 +55,6 @@ void EXTI0_1_IRQHandler(void);
void EXTI2_3_IRQHandler(void);
void TIM21_IRQHandler(void);
void SPI1_IRQHandler(void);
void USART2_IRQHandler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */
......
......@@ -110,15 +110,15 @@ int main(void)
LL_TIM_EnableCounter(TIM21);
// Enable EXTI interrupts
// LL_EXTI_EnableEvent_0_31(EXTI0_1_IRQn);
LL_EXTI_EnableFallingTrig_0_31(EXTI0_1_IRQn);
LL_EXTI_EnableRisingTrig_0_31(EXTI0_1_IRQn);
LL_EXTI_EnableIT_0_31(EXTI0_1_IRQn);
LL_EXTI_EnableEvent_0_31(LL_EXTI_LINE_0);
LL_EXTI_EnableFallingTrig_0_31(LL_EXTI_LINE_0);
LL_EXTI_EnableRisingTrig_0_31(LL_EXTI_LINE_0);
LL_EXTI_EnableIT_0_31(LL_EXTI_LINE_0);
// LL_EXTI_EnableEvent_0_31(EXTI2_3_IRQn);
LL_EXTI_EnableFallingTrig_0_31(EXTI2_3_IRQn);
LL_EXTI_EnableRisingTrig_0_31(EXTI2_3_IRQn);
LL_EXTI_EnableIT_0_31(EXTI2_3_IRQn);
LL_EXTI_EnableEvent_0_31(LL_EXTI_LINE_3);
LL_EXTI_EnableFallingTrig_0_31(LL_EXTI_LINE_3);
LL_EXTI_EnableRisingTrig_0_31(LL_EXTI_LINE_3);
LL_EXTI_EnableIT_0_31(LL_EXTI_LINE_3);
while (1)
{
......@@ -462,10 +462,6 @@ static void MX_USART2_UART_Init(void)
GPIO_InitStruct.Alternate = LL_GPIO_AF_4;
LL_GPIO_Init(VCP_RX_GPIO_Port, &GPIO_InitStruct);
/* USART2 interrupt Init */
NVIC_SetPriority(USART2_IRQn, 0);
NVIC_EnableIRQ(USART2_IRQn);
/* USER CODE BEGIN USART2_Init 1 */
/* USER CODE END USART2_Init 1 */
......
......@@ -211,19 +211,6 @@ void SPI1_IRQHandler(void)
/* USER CODE END SPI1_IRQn 1 */
}
/**
* @brief This function handles USART2 global interrupt / USART2 wake-up interrupt through EXTI line 26.
*/
void USART2_IRQHandler(void)
{
/* USER CODE BEGIN USART2_IRQn 0 */
/* USER CODE END USART2_IRQn 0 */
/* USER CODE BEGIN USART2_IRQn 1 */
/* USER CODE END USART2_IRQn 1 */
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
......@@ -12,6 +12,7 @@
// ==============
#include "temperatureRegulation.h"
#include "register.h"
#include "string.h"
// ==============
// Local typedefs
......@@ -73,7 +74,7 @@ static uint16_t RegTempMeas_U16[2U];
static uint16_t RegTempMeasBuffer_U16A[2U];
static int32_t RegPwmDyc_S32;
static uint32_t RegPwmDyc_U32;
static uint16_t RegTempDeg_U16;
static volatile uint16_t RegTempDeg_U16;
static uint16_t RegTempDegFilt_U16;
static uint16_t RegTempFiltCnt_U16;
static uint32_t RegErrorTimeoutCnt_U32;
......@@ -85,6 +86,10 @@ static bool RegAdcOngoing_B;
// PID
static int32_t RegEpsilon_S32A[2U];
// DEBUG
uint8_t debug_buffer_U8A[3];
uint16_t time_debug_U16 = 0;
// DEBUG
// ==========================
// Local functions prototypes
......@@ -187,7 +192,11 @@ void REGCyclicTask (void)
// Convert to degrees
RegTempDeg_U16 = (uint16_t)(((((uint32_t)ADC_TO_TEMP_GAIN_NUM * (uint32_t)(RegTempMeas_U16[0])) / (uint32_t)ADC_TO_TEMP_GAIN_DEN) + (uint32_t)ADC_TO_TEMP_OFFSET) & (uint32_t)0x0000FFFF);
// PID
/**********************************************************************************/
/* PID */
/**********************************************************************************/
// Regulation is done in degrees
RegEpsilon_S32A[1] = RegEpsilon_S32A[0]; // Memorise previous value
RegEpsilon_S32A[0] = RegTempSPT_U16 - RegTempDeg_U16;
......@@ -236,6 +245,56 @@ void REGCyclicTask (void)
RegPwmDyc_U32 = 0U;
}
// DEBUG
// https://github.com/nathandunk/BetterSerialPlotter#example-arduino-code
time_debug_U16++;
if (time_debug_U16 == 1000)
{
time_debug_U16 = 0;
}
DISPValueToDigits(time_debug_U16, debug_buffer_U8A);
LL_USART_TransmitData8(USART2, 0x74); // "t"
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x30 + debug_buffer_U8A[0]);
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x30 + debug_buffer_U8A[1]);
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x30 + debug_buffer_U8A[2]);
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x09); // "/t"
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
DISPValueToDigits(RegTempDeg_U16 / 10, debug_buffer_U8A);
LL_USART_TransmitData8(USART2, 0x30); // "0"
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x2E); // "."
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x30 + debug_buffer_U8A[0]);
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x30 + debug_buffer_U8A[1]);
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x30 + debug_buffer_U8A[2]);
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x09); // "/t"
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
DISPValueToDigits(RegPwmDyc_U32 / 10, debug_buffer_U8A);
LL_USART_TransmitData8(USART2, 0x30); // "0"
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x2E); // "."
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x30 + debug_buffer_U8A[0]);
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x30 + debug_buffer_U8A[1]);
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x30 + debug_buffer_U8A[2]);
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x0A); // "/n"
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
LL_USART_TransmitData8(USART2, 0x0D); // "/r"
while (LL_USART_IsActiveFlag_TXE(USART2) == 0) {}
// DEBUG
/**********************************************************************************/
// Set PWM output duty cycle
if (RegAdcOngoing_B == false)
{
......
......@@ -48,8 +48,8 @@ Mcu.PinsNb=22
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32L011K4Tx
MxCube.Version=6.8.1
MxDb.Version=DB.6.0.81
MxCube.Version=6.9.1
MxDb.Version=DB.6.0.91
NVIC.EXTI0_1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.EXTI2_3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.ForceEnableDMAVector=true
......@@ -60,7 +60,6 @@ NVIC.SPI1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.SVC_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true
NVIC.SysTick_IRQn=true\:0\:0\:true\:false\:true\:true\:true\:false
NVIC.TIM21_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
PA0-CK_IN.GPIOParameters=GPIO_Label
PA0-CK_IN.GPIO_Label=ADC_TEMP
PA0-CK_IN.Mode=IN0
......@@ -169,6 +168,8 @@ ProjectManager.RegisterCallBack=
ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=STM32CubeIDE
ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-LL-false,2-MX_GPIO_Init-GPIO-false-LL-true,3-MX_USART2_UART_Init-USART2-false-LL-true,4-MX_ADC_Init-ADC-false-LL-true,5-MX_SPI1_Init-SPI1-false-LL-true,6-MX_TIM2_Init-TIM2-false-LL-true,7-MX_TIM21_Init-TIM21-false-LL-true
RCC.48CLKFreq_Value=24000000
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment