diff --git a/BluepillTrouba.ioc b/BluepillTrouba.ioc index 60d276e..b739ee3 100644 --- a/BluepillTrouba.ioc +++ b/BluepillTrouba.ioc @@ -3,8 +3,9 @@ ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_0 ADC1.Channel-1\#ChannelRegularConversion=ADC_CHANNEL_1 ADC1.Channel-2\#ChannelRegularConversion=ADC_CHANNEL_TEMPSENSOR ADC1.Channel-3\#ChannelRegularConversion=ADC_CHANNEL_VREFINT -ADC1.ContinuousConvMode=ENABLE -ADC1.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,NbrOfConversionFlag,master,ContinuousConvMode,Rank-1\#ChannelRegularConversion,Channel-1\#ChannelRegularConversion,SamplingTime-1\#ChannelRegularConversion,Rank-2\#ChannelRegularConversion,Channel-2\#ChannelRegularConversion,SamplingTime-2\#ChannelRegularConversion,Rank-3\#ChannelRegularConversion,Channel-3\#ChannelRegularConversion,SamplingTime-3\#ChannelRegularConversion,NbrOfConversion +ADC1.ContinuousConvMode=DISABLE +ADC1.ExternalTrigConv=ADC_EXTERNALTRIGCONV_T1_CC1 +ADC1.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,NbrOfConversionFlag,master,ContinuousConvMode,Rank-1\#ChannelRegularConversion,Channel-1\#ChannelRegularConversion,SamplingTime-1\#ChannelRegularConversion,Rank-2\#ChannelRegularConversion,Channel-2\#ChannelRegularConversion,SamplingTime-2\#ChannelRegularConversion,Rank-3\#ChannelRegularConversion,Channel-3\#ChannelRegularConversion,SamplingTime-3\#ChannelRegularConversion,NbrOfConversion,ExternalTrigConv ADC1.NbrOfConversion=4 ADC1.NbrOfConversionFlag=1 ADC1.Rank-0\#ChannelRegularConversion=1 @@ -49,17 +50,18 @@ Mcu.CPN=STM32F103C8T6 Mcu.Family=STM32F1 Mcu.IP0=ADC1 Mcu.IP1=DMA -Mcu.IP10=TIM4 -Mcu.IP11=USART1 +Mcu.IP10=TIM3 +Mcu.IP11=TIM4 +Mcu.IP12=USART1 Mcu.IP2=FREERTOS Mcu.IP3=IWDG Mcu.IP4=NVIC Mcu.IP5=RCC Mcu.IP6=SPI2 Mcu.IP7=SYS -Mcu.IP8=TIM2 -Mcu.IP9=TIM3 -Mcu.IPNb=12 +Mcu.IP8=TIM1 +Mcu.IP9=TIM2 +Mcu.IPNb=13 Mcu.Name=STM32F103C(8-B)Tx Mcu.Package=LQFP48 Mcu.Pin0=PC13-TAMPER-RTC @@ -77,8 +79,10 @@ Mcu.Pin19=VP_FREERTOS_VS_CMSIS_V2 Mcu.Pin2=PA1 Mcu.Pin20=VP_IWDG_VS_IWDG Mcu.Pin21=VP_SYS_VS_Systick -Mcu.Pin22=VP_TIM2_VS_ClockSourceINT -Mcu.Pin23=VP_TIM3_VS_ClockSourceINT +Mcu.Pin22=VP_TIM1_VS_ClockSourceINT +Mcu.Pin23=VP_TIM1_VS_no_output1 +Mcu.Pin24=VP_TIM2_VS_ClockSourceINT +Mcu.Pin25=VP_TIM3_VS_ClockSourceINT Mcu.Pin3=PA6 Mcu.Pin4=PB0 Mcu.Pin5=PB1 @@ -86,13 +90,12 @@ Mcu.Pin6=PB10 Mcu.Pin7=PB13 Mcu.Pin8=PB15 Mcu.Pin9=PA9 -Mcu.PinsNb=24 +Mcu.PinsNb=26 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F103C8Tx MxCube.Version=6.5.0 MxDb.Version=DB.6.0.50 -NVIC.ADC1_2_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:true NVIC.DMA1_Channel1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:true @@ -109,8 +112,6 @@ NVIC.SavedSystickIrqHandlerGenerated=true NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:true\:false\:true\:true NVIC.TIM4_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:true -PA0-WKUP.GPIOParameters=GPIO_Label -PA0-WKUP.GPIO_Label=ADC_PT100 PA0-WKUP.Signal=ADCx_IN0 PA1.GPIOParameters=GPIO_Label PA1.GPIO_Label=ADC_SENSR @@ -194,7 +195,7 @@ ProjectManager.StackSize=0x400 ProjectManager.TargetToolchain=Makefile ProjectManager.ToolChainLocation= ProjectManager.UnderRoot=false -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-LL-false,2-MX_GPIO_Init-GPIO-false-LL-true,3-MX_IWDG_Init-IWDG-false-LL-true,4-MX_USART1_UART_Init-USART1-false-LL-true,5-MX_ADC1_Init-ADC1-false-LL-true,6-MX_DMA_Init-DMA-false-LL-true,7-MX_TIM4_Init-TIM4-false-LL-true,8-MX_TIM2_Init-TIM2-false-LL-true,9-MX_TIM3_Init-TIM3-false-LL-true,10-MX_SPI2_Init-SPI2-false-LL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-LL-false,2-MX_GPIO_Init-GPIO-false-LL-true,3-MX_IWDG_Init-IWDG-false-LL-true,4-MX_USART1_UART_Init-USART1-false-LL-true,5-MX_ADC1_Init-ADC1-false-LL-true,6-MX_DMA_Init-DMA-false-LL-true,7-MX_TIM4_Init-TIM4-false-LL-true,8-MX_TIM2_Init-TIM2-false-LL-true,9-MX_TIM3_Init-TIM3-false-LL-true,10-MX_SPI2_Init-SPI2-false-LL-true,11-MX_TIM1_Init-TIM1-false-LL-true RCC.ADCFreqValue=8000000 RCC.ADCPresc=RCC_ADCPCLK2_DIV8 RCC.AHBFreq_Value=64000000 @@ -236,6 +237,11 @@ SPI2.Direction=SPI_DIRECTION_2LINES SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler SPI2.Mode=SPI_MODE_MASTER SPI2.VirtualType=VM_MASTER +TIM1.Channel-PWM\ Generation1\ No\ Output=TIM_CHANNEL_1 +TIM1.IPParameters=Prescaler,Period,TIM_MasterOutputTrigger,Channel-PWM Generation1 No Output +TIM1.Period=100 +TIM1.Prescaler=64000 +TIM1.TIM_MasterOutputTrigger=TIM_TRGO_OC1REF TIM2.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1 TIM2.IPParameters=Channel-PWM Generation1 CH1,Prescaler TIM2.Prescaler=2 @@ -260,6 +266,10 @@ VP_IWDG_VS_IWDG.Mode=IWDG_Activate VP_IWDG_VS_IWDG.Signal=IWDG_VS_IWDG VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick +VP_TIM1_VS_ClockSourceINT.Mode=Internal +VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT +VP_TIM1_VS_no_output1.Mode=PWM Generation1 No Output +VP_TIM1_VS_no_output1.Signal=TIM1_VS_no_output1 VP_TIM2_VS_ClockSourceINT.Mode=Internal VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT VP_TIM3_VS_ClockSourceINT.Mode=Internal diff --git a/Core/Inc/main.h b/Core/Inc/main.h index a1f5c4d..d4be7db 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -50,6 +50,8 @@ extern "C" { /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ +#define __weak __attribute__((weak)) + /* USER CODE END Includes */ /* Exported types ------------------------------------------------------------*/ @@ -77,8 +79,6 @@ void Error_Handler(void); /* Private defines -----------------------------------------------------------*/ #define LED_Pin LL_GPIO_PIN_13 #define LED_GPIO_Port GPIOC -#define ADC_PT100_Pin LL_GPIO_PIN_0 -#define ADC_PT100_GPIO_Port GPIOA #define ADC_SENSR_Pin LL_GPIO_PIN_1 #define ADC_SENSR_GPIO_Port GPIOA #define OLED_CS_Pin LL_GPIO_PIN_0 diff --git a/Core/Inc/stm32f1xx_it.h b/Core/Inc/stm32f1xx_it.h index 3d18d54..ec7462b 100644 --- a/Core/Inc/stm32f1xx_it.h +++ b/Core/Inc/stm32f1xx_it.h @@ -54,7 +54,6 @@ void UsageFault_Handler(void); void DebugMon_Handler(void); void SysTick_Handler(void); void DMA1_Channel1_IRQHandler(void); -void ADC1_2_IRQHandler(void); void TIM4_IRQHandler(void); /* USER CODE BEGIN EFP */ diff --git a/Core/Inc/tim.h b/Core/Inc/tim.h index 223f3f4..5e5e723 100644 --- a/Core/Inc/tim.h +++ b/Core/Inc/tim.h @@ -36,6 +36,7 @@ extern "C" { /* USER CODE END Private defines */ +void MX_TIM1_Init(void); void MX_TIM2_Init(void); void MX_TIM3_Init(void); void MX_TIM4_Init(void); diff --git a/Core/Src/adc.c b/Core/Src/adc.c index 79920af..65567ec 100644 --- a/Core/Src/adc.c +++ b/Core/Src/adc.c @@ -46,7 +46,7 @@ void MX_ADC1_Init(void) PA0-WKUP ------> ADC1_IN0 PA1 ------> ADC1_IN1 */ - GPIO_InitStruct.Pin = ADC_PT100_Pin|ADC_SENSR_Pin; + GPIO_InitStruct.Pin = LL_GPIO_PIN_0|ADC_SENSR_Pin; GPIO_InitStruct.Mode = LL_GPIO_MODE_ANALOG; LL_GPIO_Init(GPIOA, &GPIO_InitStruct); @@ -67,10 +67,6 @@ void MX_ADC1_Init(void) LL_DMA_SetMemorySize(DMA1, LL_DMA_CHANNEL_1, LL_DMA_MDATAALIGN_HALFWORD); - /* ADC1 interrupt Init */ - NVIC_SetPriority(ADC1_2_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),5, 0)); - NVIC_EnableIRQ(ADC1_2_IRQn); - /* USER CODE BEGIN ADC1_Init 1 */ /* USER CODE END ADC1_Init 1 */ @@ -82,10 +78,10 @@ void MX_ADC1_Init(void) LL_ADC_Init(ADC1, &ADC_InitStruct); ADC_CommonInitStruct.Multimode = LL_ADC_MULTI_INDEPENDENT; LL_ADC_CommonInit(__LL_ADC_COMMON_INSTANCE(ADC1), &ADC_CommonInitStruct); - ADC_REG_InitStruct.TriggerSource = LL_ADC_REG_TRIG_SOFTWARE; + ADC_REG_InitStruct.TriggerSource = LL_ADC_REG_TRIG_EXT_TIM1_CH1; ADC_REG_InitStruct.SequencerLength = LL_ADC_REG_SEQ_SCAN_ENABLE_4RANKS; ADC_REG_InitStruct.SequencerDiscont = LL_ADC_REG_SEQ_DISCONT_DISABLE; - ADC_REG_InitStruct.ContinuousMode = LL_ADC_REG_CONV_CONTINUOUS; + ADC_REG_InitStruct.ContinuousMode = LL_ADC_REG_CONV_SINGLE; ADC_REG_InitStruct.DMATransfer = LL_ADC_REG_DMA_TRANSFER_UNLIMITED; LL_ADC_REG_Init(ADC1, &ADC_REG_InitStruct); diff --git a/Core/Src/app_heater.c b/Core/Src/app_heater.c index 21ab3f9..3dcebfb 100644 --- a/Core/Src/app_heater.c +++ b/Core/Src/app_heater.c @@ -109,6 +109,6 @@ void app_task_heater(void *argument) // TODO notify UI thread of the new temperature and heating percent - vTaskDelayUntil(&wake_time, pdMS_TO_TICKS(500)); + vTaskDelayUntil(&wake_time, pdMS_TO_TICKS(100)); } } diff --git a/Core/Src/app_temp.c b/Core/Src/app_temp.c index 79efee7..ca3f981 100644 --- a/Core/Src/app_temp.c +++ b/Core/Src/app_temp.c @@ -16,8 +16,8 @@ static volatile uint16_t adc_values[4]; const float V_REFINT = 1.23f; -#define AVERAGEBUF_DEPTH 16 -#define OVENTEMP_HISTORY_DEPTH 10 +#define AVERAGEBUF_DEPTH 8 +#define OVENTEMP_HISTORY_DEPTH 5 static struct App { float oven_temp; @@ -156,7 +156,14 @@ void app_analog_init() LL_DMA_EnableIT_TC(DMA1, LL_DMA_CHANNEL_1); LL_ADC_REG_StartConversionExtTrig(ADC_TEMP, LL_ADC_REG_TRIG_EXT_RISING); - LL_ADC_REG_StartConversionSWStart(ADC_TEMP); +// LL_ADC_REG_StartConversionSWStart(ADC_TEMP); + + LL_TIM_SetTriggerOutput(TIM1, LL_TIM_TRGO_CC1IF); + LL_TIM_CC_EnableChannel(TIM1, LL_TIM_CHANNEL_CH1); + LL_TIM_OC_SetCompareCH1(TIM1, 10); + LL_TIM_SetAutoReload(TIM1, 20); + LL_TIM_EnableAllOutputs(TIM1); + LL_TIM_EnableCounter(TIM1); } static float val_to_c(float val) @@ -241,7 +248,8 @@ float app_temp_read_soc() void app_temp_adc_eos() { - PUTCHAR('a'); + //PUTCHAR('a'); + // notify memcpy((void *) &s_analog.adc_averagebuf[s_analog.averagebuf_ptr * 4], (const void *) adc_values, 4 * sizeof(uint16_t)); s_analog.averagebuf_ptr = (s_analog.averagebuf_ptr + 1) % AVERAGEBUF_DEPTH; diff --git a/Core/Src/freertos.c b/Core/Src/freertos.c index 84b748c..dc79c68 100644 --- a/Core/Src/freertos.c +++ b/Core/Src/freertos.c @@ -223,7 +223,7 @@ void MX_FREERTOS_Init(void) { * @retval None */ /* USER CODE END Header_app_task_main */ -__attribute__((weak)) void app_task_main(void *argument) +__weak void app_task_main(void *argument) { /* USER CODE BEGIN app_task_main */ /* Infinite loop */ diff --git a/Core/Src/main.c b/Core/Src/main.c index ceff3fd..b242b36 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -118,6 +118,7 @@ int main(void) MX_TIM2_Init(); MX_TIM3_Init(); MX_SPI2_Init(); + MX_TIM1_Init(); /* USER CODE BEGIN 2 */ PUTS("Start.\r\n"); diff --git a/Core/Src/stm32f1xx_it.c b/Core/Src/stm32f1xx_it.c index 8adaa0b..a0d9cc7 100644 --- a/Core/Src/stm32f1xx_it.c +++ b/Core/Src/stm32f1xx_it.c @@ -206,27 +206,6 @@ void DMA1_Channel1_IRQHandler(void) /* USER CODE END DMA1_Channel1_IRQn 1 */ } -/** - * @brief This function handles ADC1 and ADC2 global interrupts. - */ -void ADC1_2_IRQHandler(void) -{ - /* USER CODE BEGIN ADC1_2_IRQn 0 */ - -// app_temp_adc_eos(); - -// if (LL_ADC_IsActiveFlag_EOS(ADC_TEMP)) { -// LL_ADC_ClearFlag_EOS(ADC_TEMP); -// app_temp_adc_eos(); -// } - - /* USER CODE END ADC1_2_IRQn 0 */ - - /* USER CODE BEGIN ADC1_2_IRQn 1 */ - - /* USER CODE END ADC1_2_IRQn 1 */ -} - /** * @brief This function handles TIM4 global interrupt. */ diff --git a/Core/Src/tim.c b/Core/Src/tim.c index d064f12..3021269 100644 --- a/Core/Src/tim.c +++ b/Core/Src/tim.c @@ -24,6 +24,58 @@ /* USER CODE END 0 */ +/* TIM1 init function */ +void MX_TIM1_Init(void) +{ + + /* USER CODE BEGIN TIM1_Init 0 */ + + /* USER CODE END TIM1_Init 0 */ + + LL_TIM_InitTypeDef TIM_InitStruct = {0}; + LL_TIM_OC_InitTypeDef TIM_OC_InitStruct = {0}; + LL_TIM_BDTR_InitTypeDef TIM_BDTRInitStruct = {0}; + + /* Peripheral clock enable */ + LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM1); + + /* USER CODE BEGIN TIM1_Init 1 */ + + /* USER CODE END TIM1_Init 1 */ + TIM_InitStruct.Prescaler = 64000; + TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP; + TIM_InitStruct.Autoreload = 100; + TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1; + TIM_InitStruct.RepetitionCounter = 0; + LL_TIM_Init(TIM1, &TIM_InitStruct); + LL_TIM_DisableARRPreload(TIM1); + LL_TIM_SetClockSource(TIM1, LL_TIM_CLOCKSOURCE_INTERNAL); + LL_TIM_OC_EnablePreload(TIM1, LL_TIM_CHANNEL_CH1); + TIM_OC_InitStruct.OCMode = LL_TIM_OCMODE_PWM1; + TIM_OC_InitStruct.OCState = LL_TIM_OCSTATE_DISABLE; + TIM_OC_InitStruct.OCNState = LL_TIM_OCSTATE_DISABLE; + TIM_OC_InitStruct.CompareValue = 0; + TIM_OC_InitStruct.OCPolarity = LL_TIM_OCPOLARITY_HIGH; + TIM_OC_InitStruct.OCNPolarity = LL_TIM_OCPOLARITY_HIGH; + TIM_OC_InitStruct.OCIdleState = LL_TIM_OCIDLESTATE_LOW; + TIM_OC_InitStruct.OCNIdleState = LL_TIM_OCIDLESTATE_LOW; + LL_TIM_OC_Init(TIM1, LL_TIM_CHANNEL_CH1, &TIM_OC_InitStruct); + LL_TIM_OC_DisableFast(TIM1, LL_TIM_CHANNEL_CH1); + LL_TIM_SetTriggerOutput(TIM1, LL_TIM_TRGO_OC1REF); + LL_TIM_DisableMasterSlaveMode(TIM1); + TIM_BDTRInitStruct.OSSRState = LL_TIM_OSSR_DISABLE; + TIM_BDTRInitStruct.OSSIState = LL_TIM_OSSI_DISABLE; + TIM_BDTRInitStruct.LockLevel = LL_TIM_LOCKLEVEL_OFF; + TIM_BDTRInitStruct.DeadTime = 0; + TIM_BDTRInitStruct.BreakState = LL_TIM_BREAK_DISABLE; + TIM_BDTRInitStruct.BreakPolarity = LL_TIM_BREAK_POLARITY_HIGH; + TIM_BDTRInitStruct.AutomaticOutput = LL_TIM_AUTOMATICOUTPUT_DISABLE; + LL_TIM_BDTR_Init(TIM1, &TIM_BDTRInitStruct); + /* USER CODE BEGIN TIM1_Init 2 */ + + /* USER CODE END TIM1_Init 2 */ + +} /* TIM2 init function */ void MX_TIM2_Init(void) { diff --git a/Core/Src/usart.c b/Core/Src/usart.c index 1b06fd3..a631429 100644 --- a/Core/Src/usart.c +++ b/Core/Src/usart.c @@ -73,6 +73,5 @@ void MX_USART1_UART_Init(void) } - /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ diff --git a/Makefile b/Makefile index 4e950c1..653a776 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ ########################################################################################################################## -# File automatically-generated by tool: [projectgenerator] version: [3.16.0] date: [Sun Mar 12 14:42:27 CET 2023] +# File automatically-generated by tool: [projectgenerator] version: [3.16.0] date: [Sun Mar 12 21:45:54 CET 2023] ########################################################################################################################## # ------------------------------------------------ diff --git a/Middlewares/Third_Party/FreeRTOS/Source/tasks.c b/Middlewares/Third_Party/FreeRTOS/Source/tasks.c index 203ea22..e41d9d1 100644 --- a/Middlewares/Third_Party/FreeRTOS/Source/tasks.c +++ b/Middlewares/Third_Party/FreeRTOS/Source/tasks.c @@ -53,8 +53,7 @@ functions but without including stdio.h here. */ to generate human readable text from the raw data generated by the uxTaskGetSystemState() function. Note the formatting functions are provided for convenience only, and are NOT considered part of the kernel. */ - //#include -#include "snprintf.h" + #include #endif /* configUSE_STATS_FORMATTING_FUNCTIONS == 1 ) */ #if( configUSE_PREEMPTION == 0 ) @@ -4230,7 +4229,7 @@ TCB_t *pxTCB; pcWriteBuffer = prvWriteNameToBuffer( pcWriteBuffer, pxTaskStatusArray[ x ].pcTaskName ); /* Write the rest of the string. */ - SPRINTF( pcWriteBuffer, "\t%c\t%u\t%u\t%u\r\n", cStatus, ( unsigned int ) pxTaskStatusArray[ x ].uxCurrentPriority, ( unsigned int ) pxTaskStatusArray[ x ].usStackHighWaterMark, ( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber ); + sprintf( pcWriteBuffer, "\t%c\t%u\t%u\t%u\r\n", cStatus, ( unsigned int ) pxTaskStatusArray[ x ].uxCurrentPriority, ( unsigned int ) pxTaskStatusArray[ x ].usStackHighWaterMark, ( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber ); pcWriteBuffer += strlen( pcWriteBuffer ); } @@ -4326,13 +4325,13 @@ TCB_t *pxTCB; { #ifdef portLU_PRINTF_SPECIFIER_REQUIRED { - SPRINTF( pcWriteBuffer, "\t%lu\t\t%lu%%\r\n", pxTaskStatusArray[ x ].ulRunTimeCounter, ulStatsAsPercentage ); + sprintf( pcWriteBuffer, "\t%lu\t\t%lu%%\r\n", pxTaskStatusArray[ x ].ulRunTimeCounter, ulStatsAsPercentage ); } #else { /* sizeof( int ) == sizeof( long ) so a smaller printf() library can be used. */ - SPRINTF( pcWriteBuffer, "\t%u\t\t%u%%\r\n", ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter, ( unsigned int ) ulStatsAsPercentage ); + sprintf( pcWriteBuffer, "\t%u\t\t%u%%\r\n", ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter, ( unsigned int ) ulStatsAsPercentage ); } #endif } @@ -4342,13 +4341,13 @@ TCB_t *pxTCB; consumed less than 1% of the total run time. */ #ifdef portLU_PRINTF_SPECIFIER_REQUIRED { - SPRINTF( pcWriteBuffer, "\t%lu\t\t<1%%\r\n", pxTaskStatusArray[ x ].ulRunTimeCounter ); + sprintf( pcWriteBuffer, "\t%lu\t\t<1%%\r\n", pxTaskStatusArray[ x ].ulRunTimeCounter ); } #else { /* sizeof( int ) == sizeof( long ) so a smaller printf() library can be used. */ - SPRINTF( pcWriteBuffer, "\t%u\t\t<1%%\r\n", ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter ); + sprintf( pcWriteBuffer, "\t%u\t\t<1%%\r\n", ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter ); } #endif }