采用飛思卡爾Freedom開發(fā)平臺的觸摸界面(2)
時鐘超出范圍
本文引用地址:http://2s4d.com/article/142532.htm到現(xiàn)在為止,我們已經從接口談到了TSI模塊、PORT模塊和GPIO模塊。因此,我們還沒準備好開始設置滑塊嗎?是的,因為我們還有一個更加重要的細節(jié)需要考慮。作為低功耗的片上系統(tǒng)(SoC)部件,Kinetis MCU可以通過關閉未使用的片上外設來降低功耗。這個關閉步驟其中就涉及到切斷所提及外設的時鐘信號?;謴烷e置外設的狀態(tài)需要重新啟用這個信號。時鐘信號和其他MCU系統(tǒng)配置其他方面的控制都通過系統(tǒng)集成模塊(SIM)的18個寄存器加以處理。在默認狀態(tài)下,當MCU上電時,大多數(shù)外設時鐘信號都被禁用。此外的關鍵要點在于,如果我們沒有啟用GPIO模塊的時鐘信號,我們在嘗試利用它們時會毫無進展。注意一些開發(fā)工具運行時初始化密碼會自動啟用所有外設時鐘。然而,CodeWarrior工具不會這樣,因此你必須自己管理這個功能。
仔細閱讀參考手冊中的系統(tǒng)集成模塊(SIM)一章,可以很容易找到系統(tǒng)時鐘門控寄存器,然后確定哪一個寄存器管理TSI和GPIO模塊。結果如下,第5個時鐘門控寄存器(SIM_SCGC5)處理這兩種外設。這個寄存器位的位置和功能如圖4所示。注意關于TSI和低功耗定時器模塊,這個寄存器控制的位訪問的是模塊,而不是時鐘信號。但是,結果與禁用時鐘信號一樣:如果你無法訪問部件,然后你便不能使用它。

因此,如要設置TSI模塊和RGB LED以便使用,必須采取以下步驟:
1. 在SIM_SCGC5的恰當位中寫入1,啟用端口B和端口D模塊的時鐘信號。(端口D模塊,如圖1所示,處理RGB LED的藍色部件。)同時將相應的位中寫入1,啟用TSI模塊的位?! ?/p>

2. 將配置位寫入端口B引腳控制寄存器PORTB_PCR16和PORTB_PCR17,選擇模擬信號類型,并將引腳16和17與TSI模塊通道9和通道10耦合在一起。將配置位寫入到PORTB_PCR18、PORTB_PCR19和PORTD_PCR1寄存器,將它們定義為數(shù)字信號,然后將這些引腳與LED線路耦合在一起。
3. 關于LED,將1寫入GPIOB_PDDR和GPIOD_PDDR的位,并將這些引腳設置為輸出。然后將1寫入GPIOx_PSOR寄存器適合的位,從面將LED切斷。或者,將1寫入GPIOx_PCOR寄存器相同的位,從而將它打開。(LED為低位激活。)關于模擬電極信號,只需讓TSI處理它們即可。
評論