求解,瑞萨PWM输入捕获占空比问题
时间:10-02
整理:3721RD
点击:
RX23T
设置了TMR,ICU,ICU_USER.
外部输入了一个pwm波
直接将输入的值赋给输出的值,
输出波形却不一样。
个人认为,Pulse_Width_Clk3,应该是计算出输入波形的占空比,遂,直接讲他赋给了mtu,输出的值。
不知输入波形的占空比究竟是哪一部分。求解
代码如下
******************************************************
Function Name: r_icu_irq3_interrupt* Description : None* Arguments : None* Return Value : None***********************************************************************************************************************
/#if FAST_INTERRUPT_VECTOR == VECT_ICU_IRQ3#pragma interrupt r_icu_irq3_interrupt(vect=VECT(ICU,IRQ3),fint)#else#pragma interrupt r_icu_irq3_interrupt(vect=VECT(ICU,IRQ3))#endifstatic void r_icu_irq3_interrupt(void)
{
/* Start user code. Do not edit comment generated here */
TMR_Data3_After = TMR0.TCNT; TMR_Data3_After <<= 8; TMR_Data3_After += TMR1.TCNT; Pulse_Width_Clk3 = 0; if(TMR_OV3_FLAG)
{ Pulse_Width_Clk3 = 0x0ffff + TMR_Data3_After - TMR_Data3_Before; TMR_OV3_FLAG = 0;
}
else {
Pulse_Width_Clk3 = TMR_Data3_After - TMR_Data3_Before;
}
TMR_Data3_Before = TMR_Data3_After;
/* End user code. Do not edit comment generated here */
}
设置了TMR,ICU,ICU_USER.
外部输入了一个pwm波
直接将输入的值赋给输出的值,
输出波形却不一样。
个人认为,Pulse_Width_Clk3,应该是计算出输入波形的占空比,遂,直接讲他赋给了mtu,输出的值。
不知输入波形的占空比究竟是哪一部分。求解
代码如下
******************************************************
Function Name: r_icu_irq3_interrupt* Description : None* Arguments : None* Return Value : None***********************************************************************************************************************
/#if FAST_INTERRUPT_VECTOR == VECT_ICU_IRQ3#pragma interrupt r_icu_irq3_interrupt(vect=VECT(ICU,IRQ3),fint)#else#pragma interrupt r_icu_irq3_interrupt(vect=VECT(ICU,IRQ3))#endifstatic void r_icu_irq3_interrupt(void)
{
/* Start user code. Do not edit comment generated here */
TMR_Data3_After = TMR0.TCNT; TMR_Data3_After <<= 8; TMR_Data3_After += TMR1.TCNT; Pulse_Width_Clk3 = 0; if(TMR_OV3_FLAG)
{ Pulse_Width_Clk3 = 0x0ffff + TMR_Data3_After - TMR_Data3_Before; TMR_OV3_FLAG = 0;
}
else {
Pulse_Width_Clk3 = TMR_Data3_After - TMR_Data3_Before;
}
TMR_Data3_Before = TMR_Data3_After;
/* End user code. Do not edit comment generated here */
}