|
公司的產(chǎn)品出現(xiàn)了一個(gè)問題,就是頻閃模式下的響應(yīng)問題。這個(gè)是我自己這樣歸納的。首先,我們要明白頻閃模式的工作過程。所謂的頻閃模式,其實(shí)就是一個(gè)單穩(wěn)信號(hào)。就是外部有觸發(fā)信號(hào)輸入時(shí),PWM輸出,同時(shí)定時(shí)器開始進(jìn)行定時(shí)。定時(shí)時(shí)間到,關(guān)閉PWM輸出。
在原來(lái)的程序中,沒有考慮到一種情況就是,當(dāng)定時(shí)器定時(shí)時(shí)間沒到的時(shí)候,外部再來(lái)信號(hào)的情況。所以就造成了一種情況,就是如果外部信號(hào)過快,燈會(huì)一直亮,再加一個(gè)外部觸發(fā)信號(hào)時(shí),燈滅。其實(shí)就是因?yàn)橥獠坑|發(fā)信號(hào)加的過快,導(dǎo)致定時(shí)器定時(shí)停止而無(wú)法關(guān)閉PWM輸出。
解決問題的核心思想就是,當(dāng)定時(shí)器定時(shí)時(shí)間未到時(shí),不對(duì)外部信號(hào)進(jìn)行采樣。
解決的方法是:設(shè)置兩個(gè)狀態(tài)標(biāo)志位,flag1=1,flag2=0,當(dāng)flag1=1時(shí),對(duì)外部信號(hào)進(jìn)行采樣,pwm開,定時(shí)器開,復(fù)位flag1。定時(shí)時(shí)間到,flag2=1,如果flag2=1,且外部有輸入的時(shí)候置位flag1,復(fù)位flag2.
總結(jié):這次的這個(gè)問題解決的很順利,基本上是前一天下午快下班的時(shí)候我了解到的,第二天中午我就給解決了。之所以這么順利,是有原因的。首先,邵經(jīng)理和我先弄清楚了常量模式下整個(gè)系統(tǒng)的工作過程,晚上回來(lái)后我自己又借助于程序流程圖弄清楚了邏輯順序。第二天早晨和經(jīng)理溝通后明白了客戶的需求,于是修改了程序。邏輯上是正確的,問題就自然解決了。
由此可以看出,發(fā)現(xiàn)問題-——分析問題——解決問題,按照這個(gè)過程就會(huì)很順利。而我自己的習(xí)慣則是,猜,修改一段程序,然后下載看看問題又沒有解決。費(fèi)時(shí)費(fèi)力。
|
|