熱門(mén): 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
這個(gè)很簡(jiǎn)單,只要你懂得用GPIO,timer和ISR。 問(wèn)題在於這個(gè)位移90度安如何理解。 在我理解,這就是方波的delay時(shí)間。 那你就要定義一下,這90度位移即是要delay多久。 delay多久,timer就設(shè)置多久。 簡(jiǎn)單思路: 當(dāng)GPIO檢測(cè)到0到1,來(lái)個(gè)ISR。 ISR Function中,啟動(dòng)timer計(jì)時(shí)。在 timer 的ISR中開(kāi)始啟動(dòng)輸出方波。 以上是的方法有個(gè)限制,就是你已知輸出方波的頻率。 如果你想做好一點(diǎn),輸出方波頻率能根據(jù)輸入方波頻率改變,那就要2 個(gè)GPIO的 ISR。 一個(gè)檢測(cè)0到1觸發(fā),一個(gè)檢測(cè)1到0的觸發(fā)。 檢測(cè)到輸入是上升沿,timer開(kāi)始,timer時(shí)間到,輸出1 檢測(cè)到輸入是下降沿,timer開(kāi)始,timer時(shí)間到,輸出0 以上是我們想要的結(jié)果,所以timer ISR中要檢測(cè)輸出GPIO當(dāng)時(shí)是0還是1。0時(shí)就輸出1,反之亦然。 |
參與人數(shù) 1 | 黑幣 +100 | 收起 理由 |
---|---|---|
![]() | + 100 | 回帖助人的獎(jiǎng)勵(lì)! |
Powered by 單片機(jī)教程網(wǎng)