CH565 的TMR2發(fā)單個PWM脈沖的問題

在CH565使用時,需要一個IO在收到信號上升沿后中斷,然后立刻用TMR2發(fā)一個PWM脈沖,

但是發(fā)現(xiàn)TMR2的輸出有很大的延遲,測試代碼如下

????//使能PB3?TMR2?LDON?配置
????GPIOPinRemap(ENABLE,RB_PIN_TMR2);??//使能TMR2重映射功能?PB3
????GPIOB_ResetBits(GPIO_Pin_3);
????GPIOB_ModeCfg(GPIO_Pin_3,GPIO_Slowascent_PP_8mA);
????while(1)
????{
????????GPIOA_InverseBits(GPIO_Pin_9);?//?IO反轉(zhuǎn),用于模擬顯示啟動信號
????????TMR2_PWMInit(?high_on_low?,?PWM_Times_1?);
????????TMR2_PWMCycleCfg(12000);?//?PWM周期?12000/120M?=?100us
????????TMR2_PWMActDataWidth(12000);?//?PWM占空比?100%
????????TMR2_PWMActDataWidth(0);?//?只發(fā)一個脈沖
????????mDelaymS(1);?//?測試間隔1ms
????}

示波器顯示如下

IMG_20230610_154754.jpg


為什么TMR2的輸出信號會滯后PA9那么大?試過多個周期數(shù)值,滯后正好是一個TMR2周期。

代碼里沒有任何延遲語句,這個延遲太大了,如何消除這個延遲




熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

可以使用定時器功能,在IO中斷服務(wù)中直接拉高輸出引腳,然后啟動定時器,定時時長為脈寬,在定時器中斷服務(wù)中拉低這個引腳。


需求是在IO上升沿來時,發(fā)一個指定寬度的脈沖即可,

這個脈沖高電平的寬度有可能會很小,甚至小到10ns,

如果用定時器延時來停止脈沖,定時器計數(shù)值剛開始就會中斷停止,

請問有沒有其他方法避開這個延遲的問題?例如TMR2初始化時有沒有什么辦法



您好

您看可不可以在120M主頻下,檢測到IO上升沿時,這樣翻轉(zhuǎn)IO可以到12ns寬度。中間增加一個__NOP();會大約增加8ns的高電平寬度。

image.png


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频