你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
stm32定时器tim10、11、13、14一起使用出现问题
[复制链接]
逍遥九剑
提问时间:2014-11-15 10:07 /
大家有没有用过stm32f405的tim10、11、13、14,我用这几路的ch1来测量四路PWM,结果出现问题,只有tim13能正常测量,其他的都无法进入中断
赞
0
收藏
0
评论
3
分享
发布时间:2014-11-15 10:07
举报
请先
登录
后回复
3个回答
逍遥九剑
回答时间:2014-11-15 10:09:00
a0a.1 32b0c
附上代码:
static void PPM_Configure_TIME10_11_13_14(void)
{
uint16_t PrescalerValue_APB1 = 0;
uint16_t PrescalerValue_APB2 = 0;
TIM_ICInitTypeDef TIM_ICInitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
/* CLK = 168000000/(PrescalerValue+1) = 1000000hz = 1us */
PrescalerValue_APB1 = (uint16_t) ((SystemCoreClock / PPM_FREQ) / 2) - 1;
PrescalerValue_APB2 = (uint16_t) (SystemCoreClock / PPM_FREQ) - 1;
/************************* TIM 10 *************************/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM10, ENABLE);
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = PPM_PEIOD_DUTY;
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue_APB2;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM10, &TIM_TimeBaseStructure);
/* TIM_Channel_1 */
TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_BothEdge;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICFilter = 0x0;
TIM_ICInit(TIM10, &TIM_ICInitStructure);
/************************* TIM 11 *************************/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM11, ENABLE);
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = PPM_PEIOD_DUTY;
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue_APB2;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM11, &TIM_TimeBaseStructure);
/* TIM_Channel_1 */
TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_BothEdge;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICFilter = 0x0;
TIM_ICInit(TIM11, &TIM_ICInitStructure);
/************************* TIM 13 *************************/
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM13, ENABLE);
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = PPM_PEIOD_DUTY;
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue_APB1;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM13, &TIM_TimeBaseStructure);
/* TIM_Channel_1 */
TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_BothEdge;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICFilter = 0x0;
TIM_ICInit(TIM13, &TIM_ICInitStructure);
/************************* TIM 14 *************************/
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14, ENABLE);
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = PPM_PEIOD_DUTY;
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue_APB1;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM14, &TIM_TimeBaseStructure);
/* TIM_Channel_1 */
TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_BothEdge;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICFilter = 0x0;
TIM_ICInit(TIM14, &TIM_ICInitStructure);
/************************* TIM enable counter *************************/
TIM_Cmd(TIM10, ENABLE);
TIM_Cmd(TIM11, ENABLE);
TIM_Cmd(TIM13, ENABLE);
TIM_Cmd(TIM14, ENABLE);
/************************* Enable the CCx Interrupt Request *************************/
TIM_ITConfig(TIM10, TIM_IT_CC1, ENABLE); //PPM_CH1
TIM_ITConfig(TIM11, TIM_IT_CC1, ENABLE); //PPM_CH2
TIM_ITConfig(TIM13, TIM_IT_CC1, ENABLE); //PPM_CH6
TIM_ITConfig(TIM14, TIM_IT_CC1, ENABLE); //PPM_CH5
}
static void PPM_Configure_NVIC_TIMER(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
/* NVIC_PriorityGroup */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); //0~f
NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_TIM10_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = TIM1_TRG_COM_TIM11_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = TIM8_UP_TIM13_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = TIM8_TRG_COM_TIM14_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
/*
*********************************************************************************************************
* PPM_IRQHandler_CH1
*
* Description : PPM CH1
*
* Arguments :
*
* Returns : none
*
* Notes : none
*
*********************************************************************************************************
*/
extern void PPM_IRQHandler_CH1(void)
{
if(TIM10->SR & TIM_IT_CC1)
{
TIM10->SR &= ~TIM_FLAG_CC1;
TIM10->SR &= ~TIM_FLAG_CC1OF;
if(GPIOB->IDR & GPIO_Pin_8) /*PPM CH1 if PB.8 is high Rising*/
timer10_ccr1 = TIM10->CCR1;
else
{
if((TIM10->CCR1) < timer10_ccr1)
PPM_Channel_Table[0] = PPM_PEIOD_DUTY - timer10_ccr1 + TIM10->CCR1;
else
PPM_Channel_Table[0] = TIM10->CCR1 - timer10_ccr1;
}
}
}
/*
*********************************************************************************************************
* PPM_IRQHandler_CH2
*
* Description : PPM CH2
*
* Arguments :
*
* Returns : none
*
* Notes : none
*
*********************************************************************************************************
*/
extern void PPM_IRQHandler_CH2(void)
{
if(TIM11->SR & TIM_IT_CC1)
{
TIM11->SR &= ~TIM_FLAG_CC1;
TIM11->SR &= ~TIM_FLAG_CC1OF;
if(GPIOB->IDR & GPIO_Pin_9) /*PPM CH2 if PB.9 is high Rising*/
timer11_ccr1 = TIM11->CCR1;
else
{
if((TIM11->CCR1) < timer11_ccr1)
PPM_Channel_Table[1] = PPM_PEIOD_DUTY - timer11_ccr1 + TIM11->CCR1;
else
PPM_Channel_Table[1] = TIM11->CCR1 - timer11_ccr1;
}
}
}
/*
*********************************************************************************************************
* PPM_IRQHandler_CH5
*
* Description : PPM CH5
*
* Arguments :
*
* Returns : none
*
* Notes : none
*
*********************************************************************************************************
*/
extern void PPM_IRQHandler_CH5(void)
{
if(TIM14->SR & TIM_IT_CC1)
{
TIM14->SR &= ~TIM_FLAG_CC1;
TIM14->SR &= ~TIM_FLAG_CC1OF;
if(GPIOA->IDR & GPIO_Pin_7) /*PPM CH5 if PA.7 is high Rising*/
timer14_ccr1 = TIM14->CCR1;
else
{
if((TIM14->CCR1) < timer14_ccr1)
PPM_Channel_Table[4] = PPM_PEIOD_DUTY - timer14_ccr1 + TIM14->CCR1;
else
PPM_Channel_Table[4] = TIM14->CCR1 - timer14_ccr1;
}
}
}
/*
*********************************************************************************************************
* PPM_IRQHandler_CH6
*
* Description : PPM CH6
*
* Arguments :
*
* Returns : none
*
* Notes : none
*
*********************************************************************************************************
*/
extern void PPM_IRQHandler_CH6(void)
{
if(TIM13->SR & TIM_IT_CC1)
{
TIM13->SR &= ~TIM_FLAG_CC1;
TIM13->SR &= ~TIM_FLAG_CC1OF;
if(GPIOA->IDR & GPIO_Pin_6) /*PPM CH6 if PA.6 is high Rising*/
timer13_ccr1 = TIM13->CCR1;
else
{
if((TIM13->CCR1) < timer13_ccr1)
PPM_Channel_Table[5] = PPM_PEIOD_DUTY - timer13_ccr1 + TIM13->CCR1;
else
PPM_Channel_Table[5] = TIM13->CCR1 - timer13_ccr1;
}
}
}
赞
0
评论
回复
支持
反对
沐紫
回答时间:2014-11-18 14:13:13
a0a.1 32b0c
代码比较长,麻烦各位朋友帮忙看看
赞
0
评论
回复
支持
反对
废鱼
回答时间:2014-11-18 16:46:36
a0a.1 32b0c
把NVIC的优先级错开呢?现在是同时在产生中断,楼主可以考虑先只开一个中断,确认中断正常工作,然后再根据不同的优先顺序来设置优先级。
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
static void PPM_Configure_TIME10_11_13_14(void)
{
uint16_t PrescalerValue_APB1 = 0;
uint16_t PrescalerValue_APB2 = 0;
TIM_ICInitTypeDef TIM_ICInitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
/* CLK = 168000000/(PrescalerValue+1) = 1000000hz = 1us */
PrescalerValue_APB1 = (uint16_t) ((SystemCoreClock / PPM_FREQ) / 2) - 1;
PrescalerValue_APB2 = (uint16_t) (SystemCoreClock / PPM_FREQ) - 1;
/************************* TIM 10 *************************/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM10, ENABLE);
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = PPM_PEIOD_DUTY;
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue_APB2;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM10, &TIM_TimeBaseStructure);
/* TIM_Channel_1 */
TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_BothEdge;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICFilter = 0x0;
TIM_ICInit(TIM10, &TIM_ICInitStructure);
/************************* TIM 11 *************************/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM11, ENABLE);
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = PPM_PEIOD_DUTY;
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue_APB2;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM11, &TIM_TimeBaseStructure);
/* TIM_Channel_1 */
TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_BothEdge;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICFilter = 0x0;
TIM_ICInit(TIM11, &TIM_ICInitStructure);
/************************* TIM 13 *************************/
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM13, ENABLE);
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = PPM_PEIOD_DUTY;
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue_APB1;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM13, &TIM_TimeBaseStructure);
/* TIM_Channel_1 */
TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_BothEdge;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICFilter = 0x0;
TIM_ICInit(TIM13, &TIM_ICInitStructure);
/************************* TIM 14 *************************/
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14, ENABLE);
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = PPM_PEIOD_DUTY;
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue_APB1;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM14, &TIM_TimeBaseStructure);
/* TIM_Channel_1 */
TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_BothEdge;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICFilter = 0x0;
TIM_ICInit(TIM14, &TIM_ICInitStructure);
/************************* TIM enable counter *************************/
TIM_Cmd(TIM10, ENABLE);
TIM_Cmd(TIM11, ENABLE);
TIM_Cmd(TIM13, ENABLE);
TIM_Cmd(TIM14, ENABLE);
/************************* Enable the CCx Interrupt Request *************************/
TIM_ITConfig(TIM10, TIM_IT_CC1, ENABLE); //PPM_CH1
TIM_ITConfig(TIM11, TIM_IT_CC1, ENABLE); //PPM_CH2
TIM_ITConfig(TIM13, TIM_IT_CC1, ENABLE); //PPM_CH6
TIM_ITConfig(TIM14, TIM_IT_CC1, ENABLE); //PPM_CH5
}
static void PPM_Configure_NVIC_TIMER(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
/* NVIC_PriorityGroup */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); //0~f
NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_TIM10_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = TIM1_TRG_COM_TIM11_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = TIM8_UP_TIM13_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = TIM8_TRG_COM_TIM14_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
/*
*********************************************************************************************************
* PPM_IRQHandler_CH1
*
* Description : PPM CH1
*
* Arguments :
*
* Returns : none
*
* Notes : none
*
*********************************************************************************************************
*/
extern void PPM_IRQHandler_CH1(void)
{
if(TIM10->SR & TIM_IT_CC1)
{
TIM10->SR &= ~TIM_FLAG_CC1;
TIM10->SR &= ~TIM_FLAG_CC1OF;
if(GPIOB->IDR & GPIO_Pin_8) /*PPM CH1 if PB.8 is high Rising*/
timer10_ccr1 = TIM10->CCR1;
else
{
if((TIM10->CCR1) < timer10_ccr1)
PPM_Channel_Table[0] = PPM_PEIOD_DUTY - timer10_ccr1 + TIM10->CCR1;
else
PPM_Channel_Table[0] = TIM10->CCR1 - timer10_ccr1;
}
}
}
/*
*********************************************************************************************************
* PPM_IRQHandler_CH2
*
* Description : PPM CH2
*
* Arguments :
*
* Returns : none
*
* Notes : none
*
*********************************************************************************************************
*/
extern void PPM_IRQHandler_CH2(void)
{
if(TIM11->SR & TIM_IT_CC1)
{
TIM11->SR &= ~TIM_FLAG_CC1;
TIM11->SR &= ~TIM_FLAG_CC1OF;
if(GPIOB->IDR & GPIO_Pin_9) /*PPM CH2 if PB.9 is high Rising*/
timer11_ccr1 = TIM11->CCR1;
else
{
if((TIM11->CCR1) < timer11_ccr1)
PPM_Channel_Table[1] = PPM_PEIOD_DUTY - timer11_ccr1 + TIM11->CCR1;
else
PPM_Channel_Table[1] = TIM11->CCR1 - timer11_ccr1;
}
}
}
/*
*********************************************************************************************************
* PPM_IRQHandler_CH5
*
* Description : PPM CH5
*
* Arguments :
*
* Returns : none
*
* Notes : none
*
*********************************************************************************************************
*/
extern void PPM_IRQHandler_CH5(void)
{
if(TIM14->SR & TIM_IT_CC1)
{
TIM14->SR &= ~TIM_FLAG_CC1;
TIM14->SR &= ~TIM_FLAG_CC1OF;
if(GPIOA->IDR & GPIO_Pin_7) /*PPM CH5 if PA.7 is high Rising*/
timer14_ccr1 = TIM14->CCR1;
else
{
if((TIM14->CCR1) < timer14_ccr1)
PPM_Channel_Table[4] = PPM_PEIOD_DUTY - timer14_ccr1 + TIM14->CCR1;
else
PPM_Channel_Table[4] = TIM14->CCR1 - timer14_ccr1;
}
}
}
/*
*********************************************************************************************************
* PPM_IRQHandler_CH6
*
* Description : PPM CH6
*
* Arguments :
*
* Returns : none
*
* Notes : none
*
*********************************************************************************************************
*/
extern void PPM_IRQHandler_CH6(void)
{
if(TIM13->SR & TIM_IT_CC1)
{
TIM13->SR &= ~TIM_FLAG_CC1;
TIM13->SR &= ~TIM_FLAG_CC1OF;
if(GPIOA->IDR & GPIO_Pin_6) /*PPM CH6 if PA.6 is high Rising*/
timer13_ccr1 = TIM13->CCR1;
else
{
if((TIM13->CCR1) < timer13_ccr1)
PPM_Channel_Table[5] = PPM_PEIOD_DUTY - timer13_ccr1 + TIM13->CCR1;
else
PPM_Channel_Table[5] = TIM13->CCR1 - timer13_ccr1;
}
}
}