|
1: Deney adı Dört haneli koşu lambası
2: Deneysel içerikDört pozisyonlu koşu lambasının yanıp sönme döngüsünü gerçekleştirin
3. Deneyin amacı1: LED donanımını ustalıkla kullanDevre 2: KL25 GPIO modül çıkışının kayıt yapılandırma yöntemini ustalıkla yönetin 3: Dört haneli koşu ışık döngüsü programlama yöntemini ustalıkla öğrenin
4. Deneysel yöntemler 1: O bölümün devre diyagramına bakın KL25'in PTB8, PTB9, PTB10 ve PTB11 pinlerinin sırasıyla dört LED ışık yayan diyot D6, D7, D8 ve D9'u kontrol ettiği tespit edilmiştir. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2: GPIO modülünün ilgili kayıtlarını yapılandırın (1) KL25 Referans Kılavuzu'nun 122. sayfasına bakın ve GPIO'nun platform saati tarafından sağlandığını görün.
(2) Platform saat saati ile POTRB modülünü bağlar ve aşağıdaki gibi programlayın: SIM_SCGC5=SIM_SCGC5_PORTB_MASK; SIM_SCGC5 kayıtlara başvurulabilir
(3) Çoklama pini özelliklerini ayarlayın, PTB8, PTB9, PTB10 ve PTB11'i GPIO fonksiyonları olarak yapılandırın ve bunları aşağıdaki şekilde programlayın: PORTB_PCR8=PORT_PCR_MUX(1); PORTB_PCR9=PORT_PCR_MUX(1); PORTB_PCR10=PORT_PCR_MUX(1); PORTB_PCR11=PORT_PCR_MUX(1); Daha fazla bilgi için PORTx_PCRn kaydına ve KL25 Veri Sayfası'nın 46. sayfasına bakınız
(4) Pimlerin giriş ve çıkış yönünü ayarlayın, PTB8, PTB9, PTB10 ve PTB11'i çıkışa ayarlayın ve bunları aşağıdaki şekilde programlayın: GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u); GPIOx_PDDR kayıtlara başvurulabilir
(5) Pimin çıkış mantığı seviyesini ayarlayın, PTB8, PTB9, PTB10, PTB11 çıkış yüksek seviyesini ayarlayın ve aşağıdaki gibi programlayın: GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u); Kayıtlara GPIOx_PDOR bakın
3: Dört pozisyonlu koşu lambasının döngü yanıb-sönmesini gerçekleştirin [mw_shl_code=c,true]Rutinin ana fonksiyonundaki ilgili programa danışın/* *********************************************************** * Dosya adı: main.c * fonksiyon : ana fonksiyon için * *********************************************************** */
#include "türev.h" #include "config.h" #include "crg.h" #include "gpio.h"
/******************************主函数*************************************/ int main(void)
{ asm(" CPSID i"); Geçidin genel kesintisi
crg_default_init(); Sistem varsayılan saat crg_configuration_init(); Konfigürasyondan sonraki saat MCGIRCLK_outenable(); MCGIRCL çıkışı 2M etkinleştirir clock_test(4); İlgili saatlerin testleri
gpio_init(); GPIO başlatma
asm(" CPSIE i"); Tam kesintiyi aç
for(;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u); PTB8 yüksek seviyede çıkış, D6LED ışığı açık delayms (15000); Gecikme GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u); PTB9 yüksek seviyede çıkış, D7LED ışığı açık delayms (15000); Gecikme GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u); PTB10 yüksek seviyede çıkış, D8LED ışığı açık delayms (15000); Gecikme GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u); PTB11 çıkışı yüksek seviyede, D9LED ışığı açık delayms (15000); Gecikme }
}[/mw_shl_code]
|