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