在按鍵演示防抖動部分的主要思路是:利用系統定時器溢位間隔中斷來延時防抖。這樣做可以提高**的執行效率。我們怎麼去很好的利用這個系統定時器來延時呢?如果只是簡單在系統定時器中斷中置位延時標誌位,沒有任何意義,我們需要有乙個標誌位來允許置延時標誌。第一次掃瞄到有按鍵按下時,延時標誌肯定為空,那麼在此置位乙個標誌位,來允許系統定時器中置位延時標誌,就解決了這個問題。
軟體的邏輯結構是:如果沒有延時,則置位允許延時標誌置位標誌。首先是置位標誌位,如果置位了,在系統定時器溢位中斷中,就可以置位延時標誌位。如果已經置位,處理按鍵值。
下面給出乙個在按鍵處理中的對延時標誌判斷的處理。
if(key_bit & 0x02) //如果按鍵沒有被處理
else //如果沒有存在延時
}
STM32之定時器
stm32f4的定時器分布如下 其中基本定時器包括tim6 tim7,其結構最簡單,也具有最基本的定時功能,一是用於基本定時 產生時基 二是用於驅動dac數模轉換器。其中通用定時器包括time2 time5,time9 time14共10個 通用定時器除了包含基本定時器的功能外還有輸入捕獲 輸出比較...
stm32關定時器 STM32定時器TIM3程式
include led.h include delay.h include key.h include sys.h include usart.h include timer.h stm32開發板實驗8 定時器中斷實驗 int main void delay init 延時函式初始化 nvic co...
STM32系統定時器 SysTick
systick 系統定時器是cm3核心中的乙個外設,內嵌在nvic中,所有基於cm3核心的微控制器都具有這個系統定時器,系統定時器一般用於作業系統,用於產生時基,維持作業系統的心跳。系統定時器是乙個24bit的向下遞減的計數器,計數器計數一次的時間為1 sysclk,一般我們設定系統時鐘sysclk...