From aa38e5c1f48e31213ee349aa5cd6f06c85bda70d Mon Sep 17 00:00:00 2001 From: android <android@lingyun.com> Date: Tue, 25 Jun 2024 21:49:39 +0800 Subject: [PATCH] Add GD32F103RCT6 ADC converter board SDK source code --- mcu_sdk/gd32f103/rk_eFire/System/Src/tim.c | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 173 insertions(+), 0 deletions(-) diff --git a/mcu_sdk/gd32f103/rk_eFire/System/Src/tim.c b/mcu_sdk/gd32f103/rk_eFire/System/Src/tim.c new file mode 100644 index 0000000..bdf2e45 --- /dev/null +++ b/mcu_sdk/gd32f103/rk_eFire/System/Src/tim.c @@ -0,0 +1,173 @@ +/** + ****************************************************************************** + * File Name : TIM.c + * Description : This file provides code for the configuration + * of the TIM instances. + ****************************************************************************** + * @attention + * + * <h2><center>© Copyright (c) 2021 STMicroelectronics. + * All rights reserved.</center></h2> + * + * This software component is licensed by ST under Ultimate Liberty license + * SLA0044, the "License"; You may not use this file except in compliance with + * the License. You may obtain a copy of the License at: + * www.st.com/SLA0044 + * + ****************************************************************************** + */ + +/* Includes ------------------------------------------------------------------*/ +#include "tim.h" +#include "board_common.h" +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +TIM_HandleTypeDef htim2; + +/* TIM2 init function */ +void Board_TIM2Init(void) +{ + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + TIM_MasterConfigTypeDef sMasterConfig = {0}; + + htim2.Instance = TIM2; + htim2.Init.Prescaler = 72 -1; /* 72MHz */ + htim2.Init.CounterMode = TIM_COUNTERMODE_UP; + htim2.Init.Period = 1000 -1; + htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; + if (HAL_TIM_Base_Init(&htim2) != HAL_OK) + { + Error_Handler(); + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) + { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) + { + Error_Handler(); + } + + while (HAL_TIM_Base_Start_IT(&htim2) != HAL_OK); + + //while (HAL_TIM_Base_Start(&htim2) != HAL_OK); + +} + +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) +{ + + if(tim_baseHandle->Instance==TIM2) + { + /* USER CODE BEGIN TIM2_MspInit 0 */ + + /* USER CODE END TIM2_MspInit 0 */ + /* TIM2 clock enable */ + __HAL_RCC_TIM2_CLK_ENABLE(); + + /* TIM2 interrupt Init */ + HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(TIM2_IRQn); + } +} + +void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) +{ + + if(tim_baseHandle->Instance==TIM2) + { + /* USER CODE BEGIN TIM2_MspDeInit 0 */ + + /* USER CODE END TIM2_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM2_CLK_DISABLE(); + + /* TIM2 interrupt Deinit */ + HAL_NVIC_DisableIRQ(TIM2_IRQn); + } +} + +#define HEARTBEAT_PERIOD 1000//1260 +static void SystemRunLed(void) +{ + static uint8_t u8Phase = 0; + static uint32_t u32Timeout = 0; + static bool bOneTimeFlag = false; + + if (!bOneTimeFlag) + { + u32Timeout = jiffies+60; + bOneTimeFlag = true; + Board_TurnLed(LED_RUN, TURN_ON); + } + + switch (u8Phase) + { + case 0: + if (Timeout_Happened(u32Timeout)) /* turn on 70ms */ + { + Board_TurnLed(LED_RUN, TURN_OFF); + u32Timeout = jiffies+(HEARTBEAT_PERIOD/4-60); + u8Phase++; + } + break; + case 1: + if (Timeout_Happened(u32Timeout)) /* turn off (HEARTBEAT_PERIOD/4-70)ms */ + { + Board_TurnLed(LED_RUN, TURN_ON); + u32Timeout = jiffies+60; + u8Phase++; + } + break; + case 2: + if (Timeout_Happened(u32Timeout)) /* turn on 70ms */ + { + Board_TurnLed(LED_RUN, TURN_OFF); + u32Timeout = jiffies+(HEARTBEAT_PERIOD-HEARTBEAT_PERIOD/4-70); + u8Phase++; + } + + break; + case 3: + if (Timeout_Happened(u32Timeout)) /* turn off (HEARTBEAT_PERIOD-HEARTBEAT_PERIOD/4-70)ms */ + { + Board_TurnLed(LED_RUN, TURN_ON); + u32Timeout = jiffies+60; + u8Phase = 0; + } + break; + default: + break; + } +} + +volatile uint32_t jiffies = 0; +void msTimingDelay_Decrement(void) +{ + jiffies++; /* 1ms tick */ +} + +/* TIM2��ʱ�жϴ��� */ +void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) +{ + if (htim->Instance == TIM1) + { + HAL_IncTick(); + } + + if (htim->Instance == TIM2) + { + msTimingDelay_Decrement(); + ADC_Sample(); + SystemRunLed(); + } +} + + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ -- Gitblit v1.9.1