|
1: Názov experimentu Štvormiestna bežiaca lampa
2: Experimentálny obsahUvedomte si cyklus blikania štvorpolohového bežiaceho svetla
3. Účel experimentu1: Zvládnuť LED hardvérOkruh 2: Ovládnuť metódu konfigurácie registra výstupu GPIO modulu KL25 3: Zvládnuť programovaciu metódu štvormiestneho blikania bežiaceho svetla
4. Experimentálne metódy 1: Pozrite si schému zapojenia tejto časti Zistilo sa, že piny PTB8, PTB9, PTB10 a PTB11 KL25 riadia štyri LED svietiace diódy D6, D7, D8 a D9. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2: Konfigurácia príslušných registrov GPIO modulu (1) Pozrite si stranu 122 v referenčnom manuáli KL25 a zistite, že GPIO je poskytované platformovými hodinami.
(2) Pripojiť hodinový signál platformy a modul POTRB a naprogramovať ho nasledovne: SIM_SCGC5=SIM_SCGC5_PORTB_MASK; SIM_SCGC5 registre je možné konzultovať
(3) Nastaviť atribúty multiplexujúcich pinov, nakonfigurovať PTB8, PTB9, PTB10 a PTB11 ako GPIO funkcie a naprogramovať ich nasledovne: PORTB_PCR8=PORT_PCR_MUX(1); PORTB_PCR9=PORT_PCR_MUX(1); PORTB_PCR10=PORT_PCR_MUX(1); PORTB_PCR11=PORT_PCR_MUX(1); Viac informácií nájdete v registri PORTx_PCRn a na strane 46 v KL25 Data Sheet
(4) Nastavte smer vstupu a výstupu pinov, nastavte PTB8, PTB9, PTB10 a PTB11 na výstup a naprogramujte ich nasledovne: GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u); GPIOx_PDDR registre je možné konzultovať
(5) Nastavte výstupnú logickú úroveň pinu, nastavte výstupnú vysokú úroveň PTB8, PTB9, PTB10, PTB11 a naprogramujte ju nasledovne: GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u); Pozrite si GPIOx_PDOR registre
3: Uvedomte si blikanie cyklu štvorpolohového bežného svetla [mw_shl_code=c,true] Konzultujte príslušný program v hlavnej funkcii rutiny/* *********************************************************** * názov súboru: main.c * funkcia : funkcia pre hlavné * *********************************************************** */
#include "derivative.h" #include "config.h" #include "crg.h" #include "gpio.h"
/******************************主函数*************************************/ int main(void)
{ asm(" CPSID i"); Všeobecné prerušenie priechodu
crg_default_init(); Predvolené hodiny systému crg_configuration_init(); Hodiny po konfigurácii MCGIRCLK_outenable(); Umožňuje výstup MCGIRCL 2M clock_test(4); Testy príslušných hodín
gpio_init(); Inicializácia GPIO
asm(" CPSIE i"); Otvorte úplné prerušenie
pre(;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u); PTB8 vysiela vysokú úroveň, svieti D6LED svetlo oneskorenia (15000); Oneskorenie GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u); PTB9 vysiela vysokú úroveň, svieti D7LED svetlo svieti oneskorenia (15000); Oneskorenie GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u); PTB10 vypúšťa vysokú úroveň, svieti D8LED svetlo oneskorenia (15000); Oneskorenie GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u); PTB11 vysiela vysokú úroveň, svieti D9LED oneskorenia (15000); Oneskorenie }
}[/mw_shl_code]
|