我TMR0想捕捉脉冲里高电平的持续时间
我的配置如下:
void Cap_Init( void )
{
GPIOA_ResetBits( GPIO_Pin_9 ); // 配置PWM口 PA9
GPIOA_ModeCfg( GPIO_Pin_9, GPIO_ModeIN_Floating );
TMR0_CapInit( Edge_To_Edge ); // 边沿
TMR0_CAPTimeoutCfg( 0xFFFFFFFF ); // 设置捕捉超时时间
TMR0_ITCfg( ENABLE, TMR0_3_IT_DATA_ACT ); // 开启有效电平结束中断
PFIC_EnableIRQ( TMR0_IRQn );
}
中断判断是高电平还是低电平:
__attribute__((interrupt("WCH-Interrupt-fast")))
__attribute__((section(".highcode")))
void TMR0_IRQHandler( void ) // TMR0 定时中断
{
if( TMR0_GetITFlag( TMR0_3_IT_DATA_ACT ) )
{
TMR0_ClearITFlag( TMR0_3_IT_DATA_ACT ); // 清除中断标志
if( ( TMR0_CAPGetData( ) >> 25 ) != 0 )
{
PRINT( "CAP_H:%.1f\r\n", ( TMR0_CAPGetData( ) & 0x1FFFFFF )/60000.0 );
}
}
}
但是为啥我捕捉到的是低电平时间?