采用飛思卡爾Freedom開發(fā)平臺的觸摸界面(2)
時鐘超出范圍
本文引用地址:http://butianyuan.cn/article/142532.htm到現(xiàn)在為止,我們已經(jīng)從接口談到了TSI模塊、PORT模塊和GPIO模塊。因此,我們還沒準(zhǔn)備好開始設(shè)置滑塊嗎?是的,因為我們還有一個更加重要的細(xì)節(jié)需要考慮。作為低功耗的片上系統(tǒng)(SoC)部件,Kinetis MCU可以通過關(guān)閉未使用的片上外設(shè)來降低功耗。這個關(guān)閉步驟其中就涉及到切斷所提及外設(shè)的時鐘信號。恢復(fù)閑置外設(shè)的狀態(tài)需要重新啟用這個信號。時鐘信號和其他MCU系統(tǒng)配置其他方面的控制都通過系統(tǒng)集成模塊(SIM)的18個寄存器加以處理。在默認(rèn)狀態(tài)下,當(dāng)MCU上電時,大多數(shù)外設(shè)時鐘信號都被禁用。此外的關(guān)鍵要點在于,如果我們沒有啟用GPIO模塊的時鐘信號,我們在嘗試?yán)盟鼈儠r會毫無進展。注意一些開發(fā)工具運行時初始化密碼會自動啟用所有外設(shè)時鐘。然而,CodeWarrior工具不會這樣,因此你必須自己管理這個功能。
仔細(xì)閱讀參考手冊中的系統(tǒng)集成模塊(SIM)一章,可以很容易找到系統(tǒng)時鐘門控寄存器,然后確定哪一個寄存器管理TSI和GPIO模塊。結(jié)果如下,第5個時鐘門控寄存器(SIM_SCGC5)處理這兩種外設(shè)。這個寄存器位的位置和功能如圖4所示。注意關(guān)于TSI和低功耗定時器模塊,這個寄存器控制的位訪問的是模塊,而不是時鐘信號。但是,結(jié)果與禁用時鐘信號一樣:如果你無法訪問部件,然后你便不能使用它?! ?/p>
因此,如要設(shè)置TSI模塊和RGB LED以便使用,必須采取以下步驟:
1. 在SIM_SCGC5的恰當(dāng)位中寫入1,啟用端口B和端口D模塊的時鐘信號。(端口D模塊,如圖1所示,處理RGB LED的藍(lán)色部件。)同時將相應(yīng)的位中寫入1,啟用TSI模塊的位?! ?/p>
2. 將配置位寫入端口B引腳控制寄存器PORTB_PCR16和PORTB_PCR17,選擇模擬信號類型,并將引腳16和17與TSI模塊通道9和通道10耦合在一起。將配置位寫入到PORTB_PCR18、PORTB_PCR19和PORTD_PCR1寄存器,將它們定義為數(shù)字信號,然后將這些引腳與LED線路耦合在一起。
3. 關(guān)于LED,將1寫入GPIOB_PDDR和GPIOD_PDDR的位,并將這些引腳設(shè)置為輸出。然后將1寫入GPIOx_PSOR寄存器適合的位,從面將LED切斷?;蛘撸瑢?寫入GPIOx_PCOR寄存器相同的位,從而將它打開。(LED為低位激活。)關(guān)于模擬電極信號,只需讓TSI處理它們即可。
評論