@@ -36,12 +36,21 @@ extern TIM_HandleTypeDef htim2; | |||||
extern TIM_HandleTypeDef htim10; | extern TIM_HandleTypeDef htim10; | ||||
extern TIM_HandleTypeDef htim11; | |||||
extern TIM_HandleTypeDef htim13; | |||||
extern TIM_HandleTypeDef htim14; | |||||
/* USER CODE BEGIN Private defines */ | /* USER CODE BEGIN Private defines */ | ||||
/* USER CODE END Private defines */ | /* USER CODE END Private defines */ | ||||
void MX_TIM2_Init(void); | void MX_TIM2_Init(void); | ||||
void MX_TIM10_Init(void); | void MX_TIM10_Init(void); | ||||
void MX_TIM11_Init(void); | |||||
void MX_TIM13_Init(void); | |||||
void MX_TIM14_Init(void); | |||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); | void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); | ||||
@@ -113,7 +113,7 @@ int main(void) | |||||
HAL_Init(); | HAL_Init(); | ||||
/* USER CODE BEGIN Init */ | /* USER CODE BEGIN Init */ | ||||
PVD_Init(); | |||||
/* USER CODE END Init */ | /* USER CODE END Init */ | ||||
/* Configure the system clock */ | /* Configure the system clock */ | ||||
@@ -131,6 +131,9 @@ int main(void) | |||||
MX_USART1_UART_Init(); | MX_USART1_UART_Init(); | ||||
MX_TIM10_Init(); | MX_TIM10_Init(); | ||||
MX_TIM2_Init(); | MX_TIM2_Init(); | ||||
MX_TIM11_Init(); | |||||
MX_TIM13_Init(); | |||||
MX_TIM14_Init(); | |||||
/* USER CODE BEGIN 2 */ | /* USER CODE BEGIN 2 */ | ||||
@@ -267,41 +270,78 @@ void Y1Direction(void *p_arg) | |||||
while(1) | while(1) | ||||
{ | { | ||||
/* 脉冲加减速 */ | |||||
/* 获取加减速所需要的脉冲数 */ | |||||
GetAddCount(); | |||||
/* 段切换时的脉冲加减速 */ | |||||
if (ArrFlag == 1) | if (ArrFlag == 1) | ||||
{ | { | ||||
if(TIM2->CNT < Options.AccUpTime) | |||||
/* 脉冲加速 */ | |||||
if (Acc > 0) | |||||
{ | |||||
if (TIM2->CNT < AccUpCount) | |||||
{ | |||||
SetFrequency(Options.SentPost, PulseOutput[PrePulse].Frequency + TIM2->CNT * Acc); | |||||
if (TIM2->CNT == 0) PulseStart(); /* 开始产生脉冲 */ | |||||
} | |||||
else | |||||
{ | |||||
SetFrequency(Options.SentPost, PulseOutput[NowPulse].Frequency); | |||||
ArrFlag = 0; | |||||
} | |||||
} | |||||
/* 脉冲减速 */ | |||||
else if (Acc <= 0) | |||||
{ | |||||
if (TIM2->CNT < AccDownCount) | |||||
{ | |||||
SetFrequency(Options.SentPost, PulseOutput[PrePulse].Frequency + TIM2->CNT * Acc); | |||||
if(TIM2->CNT == 0) PulseStart(); /* 开始产生脉冲 */ | |||||
} | |||||
else | |||||
{ | |||||
SetFrequency(Options.SentPost, PulseOutput[NowPulse].Frequency); | |||||
ArrFlag = 0; | |||||
} | |||||
} | |||||
} | |||||
/* 最后一段脉冲的减速 */ | |||||
if (NowPulse == Options.AllPulse - 1) | |||||
{ | |||||
Acc = - (float)PulseOutput[NowPulse].Frequency / (float)AccDownCount;/* 计算加速度 */ | |||||
if (TIM2->CNT > PulseOutput[NowPulse].PulseCount - AccUpCount - AccDownCount) /* 当达到脉冲减速的位置开始减速 */ | |||||
{ | |||||
SetFrequency(Options.SentPost, PulseOutput[NowPulse].Frequency + TIM2->CNT * Acc); | |||||
} | |||||
} | |||||
/* 第一段脉冲的加速 */ | |||||
if (NowPulse == Options.StartPulse) | |||||
{ | |||||
Acc = (float)PulseOutput[NowPulse].Frequency / (float)AccUpCount;/* 计算加速度 */ | |||||
if (AccUpCount < PulseOutput[NowPulse].PulseCount)//如果能够完成加速 | |||||
{ | { | ||||
if(TIM2->CNT == 0) PulseStart(); /* 开始产生脉冲 */ | |||||
SetFrequency(0, PulseOutput[PrePulse].Frequency + TIM2->CNT * Acc); | |||||
if(TIM2->CNT < AccUpCount) | |||||
{ | |||||
SetFrequency(Options.SentPost, TIM2->CNT * Acc); | |||||
} | |||||
else | |||||
{ | |||||
SetFrequency(Options.SentPost, PulseOutput[NowPulse].Frequency); | |||||
} | |||||
} | } | ||||
else | |||||
else //不能完成加速 | |||||
{ | { | ||||
SetFrequency(0, PulseOutput[NowPulse].Frequency); | |||||
ArrFlag = 0; | |||||
} | } | ||||
} | } | ||||
AllPulseCNT = BaseCNT + TIM2->CNT; | AllPulseCNT = BaseCNT + TIM2->CNT; | ||||
CountSave(); | CountSave(); | ||||
// /* 获取总的脉冲数 */ | |||||
// if(EndFlag || FullFlag) | |||||
// { | |||||
// if(EndFlag) | |||||
// { | |||||
// AllPulseCNT = GetBase(NowPulse) + PulseOutput[NowPulse].PulseCount; | |||||
// } | |||||
// if(FullFlag) | |||||
// { | |||||
// AllPulseCNT = MAX_Pulse; | |||||
// } | |||||
// | |||||
// } | |||||
// else | |||||
// { | |||||
// AllPulseCNT = TIM2->CNT + GetBase(NowPulse); | |||||
// } | |||||
OSTimeDly(100, OS_OPT_TIME_DLY, &err); // 延时 100 个节拍 | OSTimeDly(100, OS_OPT_TIME_DLY, &err); // 延时 100 个节拍 | ||||
} | } | ||||
} | } | ||||
@@ -319,8 +359,11 @@ void PulseStartTsk(void *p_arg) | |||||
while(1) | while(1) | ||||
{ | { | ||||
PLSRPluseLoad(); //读取脉冲设置 | |||||
PLSROptionLoad(); //读取脉冲基础设置 | |||||
if(Register_L[0x3000] == 0x01 && EN == 1) | if(Register_L[0x3000] == 0x01 && EN == 1) | ||||
{ | |||||
{ | |||||
PulseStart(); | PulseStart(); | ||||
EN = 0; | EN = 0; | ||||
} | } | ||||
@@ -328,9 +371,9 @@ void PulseStartTsk(void *p_arg) | |||||
{ | { | ||||
EN = 1; | EN = 1; | ||||
} | } | ||||
PLSRPluseLoad(); //读取脉冲设置 | |||||
PLSROptionLoad(); //读取脉冲基础设置 | |||||
ModbusSaveSRAM(); | ModbusSaveSRAM(); | ||||
OSTimeDly(100, OS_OPT_TIME_DLY, &err); // 延时 100 个节拍 | OSTimeDly(100, OS_OPT_TIME_DLY, &err); // 延时 100 个节拍 | ||||
} | } | ||||
} | } | ||||
@@ -397,129 +440,6 @@ void DirOutput(void *p_arg) | |||||
} | } | ||||
} | } | ||||
#if 0 | |||||
/** | |||||
* @brief 定时器中断回调(PWM计数) | |||||
* @return 无 | |||||
*/ | |||||
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) | |||||
{ | |||||
if (htim->Instance == TIM10) | |||||
{ | |||||
PulseCount++; | |||||
if (1 == Base.PulseMod) /* 如果是绝对模式 */ | |||||
{ | |||||
if (TIM2->CNT == Base.MAX_Pulse) /* 达到了最大脉冲数 */ | |||||
{ | |||||
HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* 停止PWM输出 */ | |||||
} | |||||
else if(PulseCount == PulseOutput[NowPulse].PulseCount) /* 如果当前段的计数等于要求的计数 */ | |||||
{ | |||||
PulseCount = 0; | |||||
HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* 停止PWM输出 */ | |||||
if(Base.PulseNum - NowPulse >= 1) | |||||
{ | |||||
Base.PrePulse = NowPulse; /* 保存之前的脉冲段 */ | |||||
if(PulseOutput[NowPulse].NextPulse == 0) | |||||
{ | |||||
NowPulse = NowPulse+ 1; | |||||
} | |||||
else | |||||
{ | |||||
NowPulse = PulseOutput[NowPulse].NextPulse; /* 进入下一段脉冲 */ | |||||
} | |||||
Acc = GetAcc(PulseOutput[Base.PrePulse].Frequency, | |||||
PulseOutput[NowPulse].Frequency, Base.AccCount); /* 计算Acc */ | |||||
ArrFlag = 1; | |||||
PulseStart(); //开始产生脉冲 | |||||
} | |||||
} | |||||
} | |||||
else if (0 == Base.PulseMod) /* 如果是相对模式 */ | |||||
{ | |||||
if (PulseCount == PulseOutput[NowPulse].PulseCount) /* 如果当前段的计数等于要求的计数 */ | |||||
{ | |||||
PulseCount = 0; | |||||
HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* 停止PWM输出 */ | |||||
if(Base.PulseNum - NowPulse > 1) | |||||
{ | |||||
Base.PrePulse = NowPulse; /* 保存之前的脉冲段 */ | |||||
if(PulseOutput[NowPulse].NextPulse == 0) | |||||
{ | |||||
NowPulse = NowPulse+ 1; | |||||
} | |||||
else | |||||
{ | |||||
NowPulse = PulseOutput[NowPulse].NextPulse; /* 进入下一段脉冲 */ | |||||
} | |||||
Acc = GetAcc(PulseOutput[Base.PrePulse].Frequency, | |||||
PulseOutput[NowPulse].Frequency, Base.AccCount); /* 计算Acc */ | |||||
ArrFlag = 1; | |||||
PulseStart(); //开始产生脉冲 | |||||
} | |||||
else | |||||
{ | |||||
PulseCount = 0; | |||||
HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* 停止PWM输出 */ | |||||
} | |||||
} | |||||
} | |||||
if (ArrFlag == 1) | |||||
{ | |||||
if(PulseCount < Base.AccCount) | |||||
{ | |||||
SetFrequency(0, PulseOutput[Base.PrePulse].Frequency + PulseCount * Acc); | |||||
} | |||||
else | |||||
{ | |||||
SetFrequency(0, PulseOutput[NowPulse].Frequency); | |||||
ArrFlag = 0; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
#endif | |||||
/** | |||||
* @brief 掉电中断 | |||||
* @return 无 | |||||
*/ | |||||
void HAL_PWR_PVDCallback(void) | |||||
{ | |||||
OSIntEnter(); /* 进入中断 */ | |||||
// 检查电压是否低于阈值 | |||||
if (__HAL_PWR_GET_FLAG(PWR_FLAG_PVDO)) | |||||
{ | |||||
HAL_GPIO_TogglePin(GPIOH, Y12_Pin); | |||||
/* 掉电处理内容 */ | |||||
ModbusSaveSRAM(); | |||||
} | |||||
OSIntExit(); /* 退出中断 */ | |||||
} | |||||
/** | |||||
* @brief PVD配置 | |||||
* @return 无 | |||||
*/ | |||||
void PVD_Init(void) | |||||
{ | |||||
PWR_PVDTypeDef PvdStruct; | |||||
HAL_PWR_EnablePVD(); /* 使能PVD */ | |||||
PvdStruct.PVDLevel = PWR_PVDLEVEL_5; /* PVD阈值3.1V */ | |||||
PvdStruct.Mode = PWR_PVD_MODE_IT_RISING; /* 检测掉电 */ | |||||
HAL_PWR_ConfigPVD(&PvdStruct); | |||||
HAL_NVIC_SetPriority(PVD_IRQn, 0, 0); /* 配置PVD中断优先级 */ | |||||
HAL_NVIC_EnableIRQ(PVD_IRQn); /* 使能PVD中断 */ | |||||
} | |||||
/* USER CODE END 4 */ | /* USER CODE END 4 */ | ||||
/** | /** | ||||
@@ -217,6 +217,7 @@ void TIM2_IRQHandler(void) | |||||
HAL_TIM_IRQHandler(&htim2); | HAL_TIM_IRQHandler(&htim2); | ||||
/* USER CODE BEGIN TIM2_IRQn 1 */ | /* USER CODE BEGIN TIM2_IRQn 1 */ | ||||
HAL_TIM_PWM_Stop_IT(&htim10,TIM_CHANNEL_1); /* 停止PWM输出 */ | |||||
PulseNum ++; /* 脉冲段数增加 */ | PulseNum ++; /* 脉冲段数增加 */ | ||||
BaseCNT += TIM2->ARR; | BaseCNT += TIM2->ARR; | ||||
@@ -236,10 +237,19 @@ void TIM2_IRQHandler(void) | |||||
} | } | ||||
/* 准备加减速 */ | /* 准备加减速 */ | ||||
Acc = GetAcc(PulseOutput[PrePulse].Frequency, | |||||
PulseOutput[NowPulse].Frequency, Options.AccUpTime); /* 计算加速度 */ | |||||
ArrFlag = 1; | |||||
if(PulseOutput[PrePulse].Frequency <= PulseOutput[NowPulse].Frequency) | |||||
{ | |||||
Acc = GetAcc(PulseOutput[PrePulse].Frequency, | |||||
PulseOutput[NowPulse].Frequency, Options.AccUpTime); /* 计算加速度 */ | |||||
} | |||||
else | |||||
{ | |||||
Acc = GetAcc(PulseOutput[PrePulse].Frequency, | |||||
PulseOutput[NowPulse].Frequency, Options.AccDownTime); /* 计算加速度 */ | |||||
} | |||||
ArrFlag = 1; | |||||
SetNextPulse();/* 设置下一次进入中断的脉冲数 */ | SetNextPulse();/* 设置下一次进入中断的脉冲数 */ | ||||
} | } | ||||
@@ -26,6 +26,9 @@ | |||||
TIM_HandleTypeDef htim2; | TIM_HandleTypeDef htim2; | ||||
TIM_HandleTypeDef htim10; | TIM_HandleTypeDef htim10; | ||||
TIM_HandleTypeDef htim11; | |||||
TIM_HandleTypeDef htim13; | |||||
TIM_HandleTypeDef htim14; | |||||
/* TIM2 init function */ | /* TIM2 init function */ | ||||
void MX_TIM2_Init(void) | void MX_TIM2_Init(void) | ||||
@@ -118,6 +121,129 @@ void MX_TIM10_Init(void) | |||||
/* USER CODE END TIM10_Init 2 */ | /* USER CODE END TIM10_Init 2 */ | ||||
HAL_TIM_MspPostInit(&htim10); | HAL_TIM_MspPostInit(&htim10); | ||||
} | |||||
/* TIM11 init function */ | |||||
void MX_TIM11_Init(void) | |||||
{ | |||||
/* USER CODE BEGIN TIM11_Init 0 */ | |||||
/* USER CODE END TIM11_Init 0 */ | |||||
TIM_OC_InitTypeDef sConfigOC = {0}; | |||||
/* USER CODE BEGIN TIM11_Init 1 */ | |||||
/* USER CODE END TIM11_Init 1 */ | |||||
htim11.Instance = TIM11; | |||||
htim11.Init.Prescaler = 0; | |||||
htim11.Init.CounterMode = TIM_COUNTERMODE_UP; | |||||
htim11.Init.Period = 65535; | |||||
htim11.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; | |||||
htim11.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; | |||||
if (HAL_TIM_Base_Init(&htim11) != HAL_OK) | |||||
{ | |||||
Error_Handler(); | |||||
} | |||||
if (HAL_TIM_PWM_Init(&htim11) != HAL_OK) | |||||
{ | |||||
Error_Handler(); | |||||
} | |||||
sConfigOC.OCMode = TIM_OCMODE_PWM1; | |||||
sConfigOC.Pulse = 0; | |||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; | |||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; | |||||
if (HAL_TIM_PWM_ConfigChannel(&htim11, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) | |||||
{ | |||||
Error_Handler(); | |||||
} | |||||
/* USER CODE BEGIN TIM11_Init 2 */ | |||||
/* USER CODE END TIM11_Init 2 */ | |||||
HAL_TIM_MspPostInit(&htim11); | |||||
} | |||||
/* TIM13 init function */ | |||||
void MX_TIM13_Init(void) | |||||
{ | |||||
/* USER CODE BEGIN TIM13_Init 0 */ | |||||
/* USER CODE END TIM13_Init 0 */ | |||||
TIM_OC_InitTypeDef sConfigOC = {0}; | |||||
/* USER CODE BEGIN TIM13_Init 1 */ | |||||
/* USER CODE END TIM13_Init 1 */ | |||||
htim13.Instance = TIM13; | |||||
htim13.Init.Prescaler = 0; | |||||
htim13.Init.CounterMode = TIM_COUNTERMODE_UP; | |||||
htim13.Init.Period = 65535; | |||||
htim13.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; | |||||
htim13.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; | |||||
if (HAL_TIM_Base_Init(&htim13) != HAL_OK) | |||||
{ | |||||
Error_Handler(); | |||||
} | |||||
if (HAL_TIM_PWM_Init(&htim13) != HAL_OK) | |||||
{ | |||||
Error_Handler(); | |||||
} | |||||
sConfigOC.OCMode = TIM_OCMODE_PWM1; | |||||
sConfigOC.Pulse = 0; | |||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; | |||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; | |||||
if (HAL_TIM_PWM_ConfigChannel(&htim13, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) | |||||
{ | |||||
Error_Handler(); | |||||
} | |||||
/* USER CODE BEGIN TIM13_Init 2 */ | |||||
/* USER CODE END TIM13_Init 2 */ | |||||
HAL_TIM_MspPostInit(&htim13); | |||||
} | |||||
/* TIM14 init function */ | |||||
void MX_TIM14_Init(void) | |||||
{ | |||||
/* USER CODE BEGIN TIM14_Init 0 */ | |||||
/* USER CODE END TIM14_Init 0 */ | |||||
TIM_OC_InitTypeDef sConfigOC = {0}; | |||||
/* USER CODE BEGIN TIM14_Init 1 */ | |||||
/* USER CODE END TIM14_Init 1 */ | |||||
htim14.Instance = TIM14; | |||||
htim14.Init.Prescaler = 0; | |||||
htim14.Init.CounterMode = TIM_COUNTERMODE_UP; | |||||
htim14.Init.Period = 65535; | |||||
htim14.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; | |||||
htim14.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; | |||||
if (HAL_TIM_Base_Init(&htim14) != HAL_OK) | |||||
{ | |||||
Error_Handler(); | |||||
} | |||||
if (HAL_TIM_PWM_Init(&htim14) != HAL_OK) | |||||
{ | |||||
Error_Handler(); | |||||
} | |||||
sConfigOC.OCMode = TIM_OCMODE_PWM1; | |||||
sConfigOC.Pulse = 0; | |||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; | |||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; | |||||
if (HAL_TIM_PWM_ConfigChannel(&htim14, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) | |||||
{ | |||||
Error_Handler(); | |||||
} | |||||
/* USER CODE BEGIN TIM14_Init 2 */ | |||||
/* USER CODE END TIM14_Init 2 */ | |||||
HAL_TIM_MspPostInit(&htim14); | |||||
} | } | ||||
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) | void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) | ||||
@@ -161,6 +287,39 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) | |||||
/* USER CODE END TIM10_MspInit 1 */ | /* USER CODE END TIM10_MspInit 1 */ | ||||
} | } | ||||
else if(tim_baseHandle->Instance==TIM11) | |||||
{ | |||||
/* USER CODE BEGIN TIM11_MspInit 0 */ | |||||
/* USER CODE END TIM11_MspInit 0 */ | |||||
/* TIM11 clock enable */ | |||||
__HAL_RCC_TIM11_CLK_ENABLE(); | |||||
/* USER CODE BEGIN TIM11_MspInit 1 */ | |||||
/* USER CODE END TIM11_MspInit 1 */ | |||||
} | |||||
else if(tim_baseHandle->Instance==TIM13) | |||||
{ | |||||
/* USER CODE BEGIN TIM13_MspInit 0 */ | |||||
/* USER CODE END TIM13_MspInit 0 */ | |||||
/* TIM13 clock enable */ | |||||
__HAL_RCC_TIM13_CLK_ENABLE(); | |||||
/* USER CODE BEGIN TIM13_MspInit 1 */ | |||||
/* USER CODE END TIM13_MspInit 1 */ | |||||
} | |||||
else if(tim_baseHandle->Instance==TIM14) | |||||
{ | |||||
/* USER CODE BEGIN TIM14_MspInit 0 */ | |||||
/* USER CODE END TIM14_MspInit 0 */ | |||||
/* TIM14 clock enable */ | |||||
__HAL_RCC_TIM14_CLK_ENABLE(); | |||||
/* USER CODE BEGIN TIM14_MspInit 1 */ | |||||
/* USER CODE END TIM14_MspInit 1 */ | |||||
} | |||||
} | } | ||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) | void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) | ||||
{ | { | ||||
@@ -171,7 +330,6 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) | |||||
/* USER CODE BEGIN TIM10_MspPostInit 0 */ | /* USER CODE BEGIN TIM10_MspPostInit 0 */ | ||||
/* USER CODE END TIM10_MspPostInit 0 */ | /* USER CODE END TIM10_MspPostInit 0 */ | ||||
__HAL_RCC_GPIOF_CLK_ENABLE(); | __HAL_RCC_GPIOF_CLK_ENABLE(); | ||||
/**TIM10 GPIO Configuration | /**TIM10 GPIO Configuration | ||||
PF6 ------> TIM10_CH1 | PF6 ------> TIM10_CH1 | ||||
@@ -187,6 +345,69 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) | |||||
/* USER CODE END TIM10_MspPostInit 1 */ | /* USER CODE END TIM10_MspPostInit 1 */ | ||||
} | } | ||||
else if(timHandle->Instance==TIM11) | |||||
{ | |||||
/* USER CODE BEGIN TIM11_MspPostInit 0 */ | |||||
/* USER CODE END TIM11_MspPostInit 0 */ | |||||
__HAL_RCC_GPIOF_CLK_ENABLE(); | |||||
/**TIM11 GPIO Configuration | |||||
PF7 ------> TIM11_CH1 | |||||
*/ | |||||
GPIO_InitStruct.Pin = GPIO_PIN_7; | |||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |||||
GPIO_InitStruct.Pull = GPIO_NOPULL; | |||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; | |||||
GPIO_InitStruct.Alternate = GPIO_AF3_TIM11; | |||||
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); | |||||
/* USER CODE BEGIN TIM11_MspPostInit 1 */ | |||||
/* USER CODE END TIM11_MspPostInit 1 */ | |||||
} | |||||
else if(timHandle->Instance==TIM13) | |||||
{ | |||||
/* USER CODE BEGIN TIM13_MspPostInit 0 */ | |||||
/* USER CODE END TIM13_MspPostInit 0 */ | |||||
__HAL_RCC_GPIOF_CLK_ENABLE(); | |||||
/**TIM13 GPIO Configuration | |||||
PF8 ------> TIM13_CH1 | |||||
*/ | |||||
GPIO_InitStruct.Pin = GPIO_PIN_8; | |||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |||||
GPIO_InitStruct.Pull = GPIO_NOPULL; | |||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; | |||||
GPIO_InitStruct.Alternate = GPIO_AF9_TIM13; | |||||
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); | |||||
/* USER CODE BEGIN TIM13_MspPostInit 1 */ | |||||
/* USER CODE END TIM13_MspPostInit 1 */ | |||||
} | |||||
else if(timHandle->Instance==TIM14) | |||||
{ | |||||
/* USER CODE BEGIN TIM14_MspPostInit 0 */ | |||||
/* USER CODE END TIM14_MspPostInit 0 */ | |||||
__HAL_RCC_GPIOF_CLK_ENABLE(); | |||||
/**TIM14 GPIO Configuration | |||||
PF9 ------> TIM14_CH1 | |||||
*/ | |||||
GPIO_InitStruct.Pin = GPIO_PIN_9; | |||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |||||
GPIO_InitStruct.Pull = GPIO_NOPULL; | |||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; | |||||
GPIO_InitStruct.Alternate = GPIO_AF9_TIM14; | |||||
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); | |||||
/* USER CODE BEGIN TIM14_MspPostInit 1 */ | |||||
/* USER CODE END TIM14_MspPostInit 1 */ | |||||
} | |||||
} | } | ||||
@@ -223,6 +444,39 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) | |||||
/* USER CODE END TIM10_MspDeInit 1 */ | /* USER CODE END TIM10_MspDeInit 1 */ | ||||
} | } | ||||
else if(tim_baseHandle->Instance==TIM11) | |||||
{ | |||||
/* USER CODE BEGIN TIM11_MspDeInit 0 */ | |||||
/* USER CODE END TIM11_MspDeInit 0 */ | |||||
/* Peripheral clock disable */ | |||||
__HAL_RCC_TIM11_CLK_DISABLE(); | |||||
/* USER CODE BEGIN TIM11_MspDeInit 1 */ | |||||
/* USER CODE END TIM11_MspDeInit 1 */ | |||||
} | |||||
else if(tim_baseHandle->Instance==TIM13) | |||||
{ | |||||
/* USER CODE BEGIN TIM13_MspDeInit 0 */ | |||||
/* USER CODE END TIM13_MspDeInit 0 */ | |||||
/* Peripheral clock disable */ | |||||
__HAL_RCC_TIM13_CLK_DISABLE(); | |||||
/* USER CODE BEGIN TIM13_MspDeInit 1 */ | |||||
/* USER CODE END TIM13_MspDeInit 1 */ | |||||
} | |||||
else if(tim_baseHandle->Instance==TIM14) | |||||
{ | |||||
/* USER CODE BEGIN TIM14_MspDeInit 0 */ | |||||
/* USER CODE END TIM14_MspDeInit 0 */ | |||||
/* Peripheral clock disable */ | |||||
__HAL_RCC_TIM14_CLK_DISABLE(); | |||||
/* USER CODE BEGIN TIM14_MspDeInit 1 */ | |||||
/* USER CODE END TIM14_MspDeInit 1 */ | |||||
} | |||||
} | } | ||||
/* USER CODE BEGIN 1 */ | /* USER CODE BEGIN 1 */ | ||||
@@ -20,7 +20,7 @@ | |||||
<LeaveTargetRunning>_ 0</LeaveTargetRunning> | <LeaveTargetRunning>_ 0</LeaveTargetRunning> | ||||
</StLinkDriver> | </StLinkDriver> | ||||
<DebugChecksum> | <DebugChecksum> | ||||
<Checksum>2315233233</Checksum> | |||||
<Checksum>3713707742</Checksum> | |||||
</DebugChecksum> | </DebugChecksum> | ||||
<Exceptions> | <Exceptions> | ||||
<StopOnUncaught>_ 0</StopOnUncaught> | <StopOnUncaught>_ 0</StopOnUncaught> | ||||
@@ -60,11 +60,12 @@ | |||||
<regBase0>TIM2_CNT 10</regBase0> | <regBase0>TIM2_CNT 10</regBase0> | ||||
</Registers> | </Registers> | ||||
<struct_types> | <struct_types> | ||||
<Fmt0>Option-AccUpTime 3 0</Fmt0> | |||||
<Fmt1>Option-InitSpeed 3 0</Fmt1> | |||||
<Fmt2>Pulse-Frequency 3 0</Fmt2> | |||||
<Fmt3>Pulse-NextPulse 3 0</Fmt3> | |||||
<Fmt4>Pulse-PulseCount 3 0</Fmt4> | |||||
<Fmt0>Option-AccDownTime 3 0</Fmt0> | |||||
<Fmt1>Option-AccUpTime 3 0</Fmt1> | |||||
<Fmt2>Option-InitSpeed 3 0</Fmt2> | |||||
<Fmt3>Pulse-Frequency 3 0</Fmt3> | |||||
<Fmt4>Pulse-NextPulse 3 0</Fmt4> | |||||
<Fmt5>Pulse-PulseCount 3 0</Fmt5> | |||||
</struct_types> | </struct_types> | ||||
<array_types> | <array_types> | ||||
<Fmt0>uint8_t[10000] 4 0</Fmt0> | <Fmt0>uint8_t[10000] 4 0</Fmt0> | ||||
@@ -14,14 +14,15 @@ uint8_t NowPulse; /* | |||||
uint8_t PrePulse; /* 之前处于第几段脉冲 */ | uint8_t PrePulse; /* 之前处于第几段脉冲 */ | ||||
uint8_t PulseNum; /* 一共有多少段脉冲 */ | uint8_t PulseNum; /* 一共有多少段脉冲 */ | ||||
int32_t MAX_Pulse; /* 最多的脉冲数 */ | int32_t MAX_Pulse; /* 最多的脉冲数 */ | ||||
int32_t AccCount; /* 加速脉冲数 */ | |||||
int32_t AccUpCount; /* 加速脉冲数 */ | |||||
int32_t AccDownCount; /* 减速脉冲数 */ | |||||
int32_t NowMAXPulse; /* 当前要达到的总脉冲 */ | int32_t NowMAXPulse; /* 当前要达到的总脉冲 */ | ||||
int32_t PulseCount = 0; | int32_t PulseCount = 0; | ||||
/** | /** | ||||
* @brief 根据脉冲的频率设置对应的PSC和ARR | * @brief 根据脉冲的频率设置对应的PSC和ARR | ||||
* @param[in] SentPost 脉冲通道(目前只有通道Y0) | |||||
* @param[in] SentPost 脉冲通道 | |||||
* @param[in] Ferquency 脉冲的频率 | * @param[in] Ferquency 脉冲的频率 | ||||
* @return 无 | * @return 无 | ||||
*/ | */ | ||||
@@ -31,6 +32,9 @@ void SetFrequency(uint8_t SentPost, uint32_t Frequency) | |||||
switch(SentPost) | switch(SentPost) | ||||
{ | { | ||||
case 0: TIM10->ARR = arr, TIM10->PSC = psc, TIM10->CCR1 = arr / 2; break; | case 0: TIM10->ARR = arr, TIM10->PSC = psc, TIM10->CCR1 = arr / 2; break; | ||||
case 1: TIM11->ARR = arr, TIM11->PSC = psc, TIM11->CCR1 = arr / 2; break; | |||||
case 2: TIM13->ARR = arr, TIM13->PSC = psc, TIM13->CCR1 = arr / 2; break; | |||||
case 3: TIM14->ARR = arr, TIM14->PSC = psc, TIM14->CCR1 = arr / 2; break; | |||||
} | } | ||||
} | } | ||||
@@ -66,11 +70,24 @@ void PulseBaseInit(uint8_t StartPulse, uint8_t PulseMod, int32_t MAX_Pulse) | |||||
MAX_Pulse = MAX_Pulse; | MAX_Pulse = MAX_Pulse; | ||||
} | } | ||||
/** | |||||
* @brief 脉冲开始 | |||||
* @param[in] StartPulse 起始脉冲段 | |||||
* @return 无 | |||||
*/ | |||||
void PulseStart(void) | void PulseStart(void) | ||||
{ | { | ||||
SetFrequency(Options.DirPost, PulseOutput[NowPulse].Frequency); | |||||
SetFrequency(Options.SentPost, PulseOutput[NowPulse].Frequency); | |||||
TIM2->ARR = PulseOutput[NowPulse].PulseCount; | TIM2->ARR = PulseOutput[NowPulse].PulseCount; | ||||
HAL_TIM_PWM_Start_IT(&htim10, TIM_CHANNEL_1); | |||||
switch(Options.SentPost) | |||||
{ | |||||
case 0: HAL_TIM_PWM_Start_IT(&htim10, TIM_CHANNEL_1); break; | |||||
case 1: HAL_TIM_PWM_Start_IT(&htim11, TIM_CHANNEL_1); break; | |||||
case 2: HAL_TIM_PWM_Start_IT(&htim13, TIM_CHANNEL_1); break; | |||||
case 3: HAL_TIM_PWM_Start_IT(&htim14, TIM_CHANNEL_1); break; | |||||
} | |||||
} | } | ||||
/** | /** | ||||
* @brief 获取加速度 | * @brief 获取加速度 | ||||
@@ -207,7 +224,7 @@ void PLSROptionLoad(void) | |||||
uint16_t tempH, tempL; | uint16_t tempH, tempL; | ||||
Set8_16(&tempH, &Register_H[0x1009], &Register_L[0x1009]); | Set8_16(&tempH, &Register_H[0x1009], &Register_L[0x1009]); | ||||
Set8_16(&tempL, &Register_H[0x100A], &Register_L[0x100A]); | Set8_16(&tempL, &Register_H[0x100A], &Register_L[0x100A]); | ||||
Set16_32(&InitSpeed, &tempH, &tempL); | |||||
Set16_32(&InitSpeed, &tempL, &tempH); | |||||
/* 数据读取 */ | /* 数据读取 */ | ||||
Options.SentPost = Register_L[0x1000]; | Options.SentPost = Register_L[0x1000]; | ||||
@@ -220,8 +237,9 @@ void PLSROptionLoad(void) | |||||
Options.AllPulse = Register_L[0x1007]; | Options.AllPulse = Register_L[0x1007]; | ||||
Options.StartPulse = Register_L[0x1008]; | Options.StartPulse = Register_L[0x1008]; | ||||
Options.InitSpeed = InitSpeed; | Options.InitSpeed = InitSpeed; | ||||
Options.AccUpTime = Register_L[0x100B]; | |||||
Options.AccDownTime = Register_L[0x100C]; | |||||
Options.AccUpTime = (Register_H[0x100B]<< 8) | Register_L[0x100B]; | |||||
Options.AccDownTime = (Register_H[0x100C]<< 8) | Register_L[0x100C]; | |||||
} | } | ||||
void PLSRPluseLoad(void) | void PLSRPluseLoad(void) | ||||
@@ -250,6 +268,10 @@ void PLSRPluseLoad(void) | |||||
} | } | ||||
} | } | ||||
/** | |||||
* @brief 保存总的脉冲数至指定的寄存器 | |||||
* @return 无 | |||||
*/ | |||||
void CountSave(void) | void CountSave(void) | ||||
{ | { | ||||
int32_t temp_Count = 0; | int32_t temp_Count = 0; | ||||
@@ -259,9 +281,18 @@ void CountSave(void) | |||||
memcpy(&temp_Count, &AllPulseCNT, 4); | memcpy(&temp_Count, &AllPulseCNT, 4); | ||||
DatH = temp_Count / 0xffff; | DatH = temp_Count / 0xffff; | ||||
DatL = temp_Count % 0xffff; | DatL = temp_Count % 0xffff; | ||||
Register_H[0x2001] = DatH / 0xff; | |||||
Register_L[0x2001] = DatH % 0xff; | |||||
Register_H[0x2000] = DatL / 0xff; | |||||
Register_L[0x2000] = DatL % 0xff; | |||||
} | |||||
Register_H[0x2001] = (DatH >> 8); | |||||
Register_L[0x2001] = (DatH & 0x00ff); | |||||
Register_H[0x2000] = (DatL >> 8); | |||||
Register_L[0x2000] = (DatL & 0x00ff); | |||||
} | |||||
/** | |||||
* @brief 获取加减速的脉冲数 | |||||
* @return 无 | |||||
*/ | |||||
void GetAddCount(void) | |||||
{ | |||||
AccUpCount = Options.AccUpTime * PulseOutput[NowPulse].Frequency / 1000; | |||||
AccDownCount = Options.AccDownTime * PulseOutput[NowPulse].Frequency / 1000; | |||||
} |
@@ -25,8 +25,8 @@ typedef struct | |||||
uint8_t AllPulse; ///<<脉冲总段数 | uint8_t AllPulse; ///<<脉冲总段数 | ||||
uint8_t StartPulse; ///<<起始执行段数 | uint8_t StartPulse; ///<<起始执行段数 | ||||
uint32_t InitSpeed; ///<<脉冲默认速度 | uint32_t InitSpeed; ///<<脉冲默认速度 | ||||
uint8_t AccUpTime; ///<<脉冲默认速度加速时间 | |||||
uint8_t AccDownTime; ///<<脉冲默认速度减速时间 | |||||
uint16_t AccUpTime; ///<<脉冲默认速度加速时间 | |||||
uint16_t AccDownTime; ///<<脉冲默认速度减速时间 | |||||
} Option; | } Option; | ||||
/* 变量声明 */ | /* 变量声明 */ | ||||
@@ -37,11 +37,13 @@ extern uint8_t NowPulse; ///<< | |||||
extern uint8_t PrePulse; ///<< 之前处于第几段脉冲 | extern uint8_t PrePulse; ///<< 之前处于第几段脉冲 | ||||
extern uint8_t PulseNum; ///<< 一共有多少段脉冲(中断内使用) | extern uint8_t PulseNum; ///<< 一共有多少段脉冲(中断内使用) | ||||
extern int32_t MAX_Pulse; ///<< 最多的脉冲数 | extern int32_t MAX_Pulse; ///<< 最多的脉冲数 | ||||
extern int32_t AccCount; ///<<加速脉冲数 | |||||
extern int32_t AccUpCount; ///<<加速脉冲数 | |||||
extern int32_t AccDownCount;///<<减速脉冲数 | |||||
extern int32_t NowMAXPulse; ///<<当前要达到的总脉冲 | extern int32_t NowMAXPulse; ///<<当前要达到的总脉冲 | ||||
extern int32_t PulseCount; | extern int32_t PulseCount; | ||||
extern int32_t NextPulseEND; | extern int32_t NextPulseEND; | ||||
/* 函数声明 */ | /* 函数声明 */ | ||||
void SetFrequency(uint8_t SentPost, uint32_t Frequency); | void SetFrequency(uint8_t SentPost, uint32_t Frequency); | ||||
void SetPulse(uint8_t Pulse, uint32_t Ferquency, int32_t Count, uint8_t Direction, int8_t NextPulse); | void SetPulse(uint8_t Pulse, uint32_t Ferquency, int32_t Count, uint8_t Direction, int8_t NextPulse); | ||||
@@ -54,6 +56,7 @@ void SetNextPulse(void); | |||||
void PLSROptionLoad(void); | void PLSROptionLoad(void); | ||||
void PLSRPluseLoad(void); | void PLSRPluseLoad(void); | ||||
void CountSave(void); | void CountSave(void); | ||||
void GetAddCount(void); | |||||
uint32_t GetBase(uint8_t NowPulseNUM); | uint32_t GetBase(uint8_t NowPulseNUM); | ||||
@@ -129,7 +129,7 @@ void Frequency_Change_PSC_And_ARR(uint32_t Frequency, uint16_t* psc, uint16_t* a | |||||
else | else | ||||
{ | { | ||||
*psc = 1; | *psc = 1; | ||||
*arr = 72000000 / ((*psc) * Frequency); | |||||
*arr = 36000000 / ((*psc) * Frequency); | |||||
} | } | ||||
} | } | ||||
else | else | ||||
@@ -36,23 +36,34 @@ Mcu.IP2=RCC | |||||
Mcu.IP3=SYS | Mcu.IP3=SYS | ||||
Mcu.IP4=TIM2 | Mcu.IP4=TIM2 | ||||
Mcu.IP5=TIM10 | Mcu.IP5=TIM10 | ||||
Mcu.IP6=USART1 | |||||
Mcu.IPNb=7 | |||||
Mcu.IP6=TIM11 | |||||
Mcu.IP7=TIM13 | |||||
Mcu.IP8=TIM14 | |||||
Mcu.IP9=USART1 | |||||
Mcu.IPNb=10 | |||||
Mcu.Name=STM32F407I(E-G)Tx | Mcu.Name=STM32F407I(E-G)Tx | ||||
Mcu.Package=LQFP176 | Mcu.Package=LQFP176 | ||||
Mcu.Pin0=PF6 | Mcu.Pin0=PF6 | ||||
Mcu.Pin1=PH0-OSC_IN | |||||
Mcu.Pin10=VP_SYS_VS_Systick | |||||
Mcu.Pin11=VP_TIM10_VS_ClockSourceINT | |||||
Mcu.Pin2=PH1-OSC_OUT | |||||
Mcu.Pin3=PH6 | |||||
Mcu.Pin4=PH7 | |||||
Mcu.Pin5=PH8 | |||||
Mcu.Pin6=PH9 | |||||
Mcu.Pin7=PA9 | |||||
Mcu.Pin8=PA10 | |||||
Mcu.Pin9=PA15 | |||||
Mcu.PinsNb=12 | |||||
Mcu.Pin1=PF7 | |||||
Mcu.Pin10=PA9 | |||||
Mcu.Pin11=PA10 | |||||
Mcu.Pin12=PA13 | |||||
Mcu.Pin13=PA14 | |||||
Mcu.Pin14=PA15 | |||||
Mcu.Pin15=VP_SYS_VS_Systick | |||||
Mcu.Pin16=VP_TIM10_VS_ClockSourceINT | |||||
Mcu.Pin17=VP_TIM11_VS_ClockSourceINT | |||||
Mcu.Pin18=VP_TIM13_VS_ClockSourceINT | |||||
Mcu.Pin19=VP_TIM14_VS_ClockSourceINT | |||||
Mcu.Pin2=PF8 | |||||
Mcu.Pin3=PF9 | |||||
Mcu.Pin4=PH0-OSC_IN | |||||
Mcu.Pin5=PH1-OSC_OUT | |||||
Mcu.Pin6=PH6 | |||||
Mcu.Pin7=PH7 | |||||
Mcu.Pin8=PH8 | |||||
Mcu.Pin9=PH9 | |||||
Mcu.PinsNb=20 | |||||
Mcu.ThirdPartyNb=0 | Mcu.ThirdPartyNb=0 | ||||
Mcu.UserConstants= | Mcu.UserConstants= | ||||
Mcu.UserName=STM32F407IGTx | Mcu.UserName=STM32F407IGTx | ||||
@@ -75,6 +86,10 @@ NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true | |||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false | NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false | ||||
PA10.Mode=Asynchronous | PA10.Mode=Asynchronous | ||||
PA10.Signal=USART1_RX | PA10.Signal=USART1_RX | ||||
PA13.Mode=Serial_Wire | |||||
PA13.Signal=SYS_JTMS-SWDIO | |||||
PA14.Mode=Serial_Wire | |||||
PA14.Signal=SYS_JTCK-SWCLK | |||||
PA15.GPIOParameters=GPIO_Speed | PA15.GPIOParameters=GPIO_Speed | ||||
PA15.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH | PA15.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH | ||||
PA15.Locked=true | PA15.Locked=true | ||||
@@ -83,6 +98,12 @@ PA9.Mode=Asynchronous | |||||
PA9.Signal=USART1_TX | PA9.Signal=USART1_TX | ||||
PF6.Locked=true | PF6.Locked=true | ||||
PF6.Signal=S_TIM10_CH1 | PF6.Signal=S_TIM10_CH1 | ||||
PF7.Locked=true | |||||
PF7.Signal=S_TIM11_CH1 | |||||
PF8.Locked=true | |||||
PF8.Signal=S_TIM13_CH1 | |||||
PF9.Locked=true | |||||
PF9.Signal=S_TIM14_CH1 | |||||
PH0-OSC_IN.Mode=HSE-External-Oscillator | PH0-OSC_IN.Mode=HSE-External-Oscillator | ||||
PH0-OSC_IN.Signal=RCC_OSC_IN | PH0-OSC_IN.Signal=RCC_OSC_IN | ||||
PH1-OSC_OUT.Mode=HSE-External-Oscillator | PH1-OSC_OUT.Mode=HSE-External-Oscillator | ||||
@@ -132,7 +153,7 @@ ProjectManager.StackSize=0x400 | |||||
ProjectManager.TargetToolchain=EWARM V8 | ProjectManager.TargetToolchain=EWARM V8 | ||||
ProjectManager.ToolChainLocation= | ProjectManager.ToolChainLocation= | ||||
ProjectManager.UnderRoot=false | ProjectManager.UnderRoot=false | ||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM10_Init-TIM10-false-HAL-true,6-MX_TIM2_Init-TIM2-false-HAL-true | |||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM10_Init-TIM10-false-HAL-true,6-MX_TIM2_Init-TIM2-false-HAL-true,7-MX_TIM11_Init-TIM11-false-HAL-true,8-MX_TIM13_Init-TIM13-false-HAL-true,9-MX_TIM14_Init-TIM14-false-HAL-true | |||||
RCC.48MHZClocksFreq_Value=36000000 | RCC.48MHZClocksFreq_Value=36000000 | ||||
RCC.AHBFreq_Value=72000000 | RCC.AHBFreq_Value=72000000 | ||||
RCC.APB1CLKDivider=RCC_HCLK_DIV2 | RCC.APB1CLKDivider=RCC_HCLK_DIV2 | ||||
@@ -169,6 +190,12 @@ RCC.VCOOutputFreq_Value=144000000 | |||||
RCC.VcooutputI2S=192000000 | RCC.VcooutputI2S=192000000 | ||||
SH.S_TIM10_CH1.0=TIM10_CH1,PWM Generation1 CH1 | SH.S_TIM10_CH1.0=TIM10_CH1,PWM Generation1 CH1 | ||||
SH.S_TIM10_CH1.ConfNb=1 | SH.S_TIM10_CH1.ConfNb=1 | ||||
SH.S_TIM11_CH1.0=TIM11_CH1,PWM Generation1 CH1 | |||||
SH.S_TIM11_CH1.ConfNb=1 | |||||
SH.S_TIM13_CH1.0=TIM13_CH1,PWM Generation1 CH1 | |||||
SH.S_TIM13_CH1.ConfNb=1 | |||||
SH.S_TIM14_CH1.0=TIM14_CH1,PWM Generation1 CH1 | |||||
SH.S_TIM14_CH1.ConfNb=1 | |||||
SH.S_TIM2_CH1_ETR.0=TIM2_ETR,ClockSourceETR_Mode2 | SH.S_TIM2_CH1_ETR.0=TIM2_ETR,ClockSourceETR_Mode2 | ||||
SH.S_TIM2_CH1_ETR.ConfNb=1 | SH.S_TIM2_CH1_ETR.ConfNb=1 | ||||
TIM10.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE | TIM10.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE | ||||
@@ -177,6 +204,12 @@ TIM10.IPParameters=Channel,Prescaler,AutoReloadPreload,Pulse,OCPolarity_1 | |||||
TIM10.OCPolarity_1=TIM_OCPOLARITY_LOW | TIM10.OCPolarity_1=TIM_OCPOLARITY_LOW | ||||
TIM10.Prescaler=72 | TIM10.Prescaler=72 | ||||
TIM10.Pulse=32767 | TIM10.Pulse=32767 | ||||
TIM11.Channel=TIM_CHANNEL_1 | |||||
TIM11.IPParameters=Channel | |||||
TIM13.Channel=TIM_CHANNEL_1 | |||||
TIM13.IPParameters=Channel | |||||
TIM14.Channel=TIM_CHANNEL_1 | |||||
TIM14.IPParameters=Channel | |||||
USART1.BaudRate=19200 | USART1.BaudRate=19200 | ||||
USART1.IPParameters=VirtualMode,BaudRate,Parity,WordLength | USART1.IPParameters=VirtualMode,BaudRate,Parity,WordLength | ||||
USART1.Parity=PARITY_ODD | USART1.Parity=PARITY_ODD | ||||
@@ -186,4 +219,10 @@ VP_SYS_VS_Systick.Mode=SysTick | |||||
VP_SYS_VS_Systick.Signal=SYS_VS_Systick | VP_SYS_VS_Systick.Signal=SYS_VS_Systick | ||||
VP_TIM10_VS_ClockSourceINT.Mode=Enable_Timer | VP_TIM10_VS_ClockSourceINT.Mode=Enable_Timer | ||||
VP_TIM10_VS_ClockSourceINT.Signal=TIM10_VS_ClockSourceINT | VP_TIM10_VS_ClockSourceINT.Signal=TIM10_VS_ClockSourceINT | ||||
VP_TIM11_VS_ClockSourceINT.Mode=Enable_Timer | |||||
VP_TIM11_VS_ClockSourceINT.Signal=TIM11_VS_ClockSourceINT | |||||
VP_TIM13_VS_ClockSourceINT.Mode=Enable_Timer | |||||
VP_TIM13_VS_ClockSourceINT.Signal=TIM13_VS_ClockSourceINT | |||||
VP_TIM14_VS_ClockSourceINT.Mode=Enable_Timer | |||||
VP_TIM14_VS_ClockSourceINT.Signal=TIM14_VS_ClockSourceINT | |||||
board=custom | board=custom |