我TMR0想捕捉脈沖里高電平的持續(xù)時間
我的配置如下:
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 );?????????????????????????????? // 設(shè)置捕捉超時時間
??? TMR0_ITCfg( ENABLE, TMR0_3_IT_DATA_ACT );?????????????????????? // 開啟有效電平結(jié)束中斷
??? 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 );???????????????????? // 清除中斷標(biāo)志
??????? if( ( TMR0_CAPGetData(? ) >> 25 ) != 0 )
??????? {
??????????? PRINT( "CAP_H:%.1f\r\n", ( TMR0_CAPGetData(? ) & 0x1FFFFFF )/60000.0 );
??????? }
??? }
}
但是為啥我捕捉到的是低電平時間?