|
1: Kísérlet neve Négyjegyű futólámpa
2: Kísérleti tartalomIsmerd meg a négypozíciós futólámpa villogásának ciklusát
3. A kísérlet célja1: Mester a LED hardverKör 2: A KL25 GPIO modul kimenetének regisztrációs konfigurációs módszerének elsajátítása 3: A négyjegyű futófény villogásának programozási módszerének elsajátítása
4. Kísérleti módszerek 1: Nézd meg az adott szakasz áramköri rajzát Megállapították, hogy a KL25 PTB8, PTB9, PTB10 és PTB11 tűi irányítják a négy LED fénykibocsátó diódát: D6, D7, D8 és D9. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2: Konfigurálni a GPIO modul megfelelő regisztereit (1) Tekintse meg a KL25 Referencia Kézikönyv 122. oldalát, és találja meg, hogy a GPIO-t a peron óraóra biztosítja.
(2) Kapcsolja össze a platform órajelét a POTRB modult, és programozza az alábbiakkal: SIM_SCGC5=SIM_SCGC5_PORTB_MASK; SIM_SCGC5 regiszterek megtekinthetők
(3) Állítsuk be a multiplexáló tű attribútumokat, konfiguráljuk a PTB8, PTB9, PTB10 és PTB11 fájlokat GPIO függvényeknek, és programozzuk őket az alábbiaknak: PORTB_PCR8=PORT_PCR_MUX(1); PORTB_PCR9=PORT_PCR_MUX(1); PORTB_PCR10=PORT_PCR_MUX(1); PORTB_PCR11=PORT_PCR_MUX(1); További információért lásd a PORTx_PCRn nyilvántartást és a KL25 Adatlap 46. oldalát
(4) Állítsuk be a tűk bemeneti és kimeneti irányát, állítsuk be a PTB8, PTB9, PTB10 és PTB11 jelzéseket kimenetre, és programozzuk őket az alábbiaknak: GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u); GPIOx_PDDR regiszterek megtekinthetők
(5) Állítsuk be a tű kimeneti logikai szintjét, állítsuk be a PTB8, PTB9, PTB10, PTB11 kimeneti magas szintjét, és programozzuk az alábbiaknak: GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u); Nézd meg GPIOx_PDOR regisztereket
3: Valósítsd meg a négypozíciós futólámpa villogásának ciklusát [mw_shl_code=c,true]A rutin fő funkciójában lévő megfelelő programot kell megnézni/* *********************************************************** * Fájlnév: main.c * függvény : funkció a fő számára * *********************************************************** */
#include "derivative.h" #include "config.h" #include "crg.h" #include "gpio.h"
/******************************主函数*************************************/ int main(void)
{ asm("CPSID i"); A hágó általános megszakítása
crg_default_init(); Rendszer alapértelmezett órajel crg_configuration_init(); Óra konfiguráció után MCGIRCLK_outenable(); Lehetővé teszi az MCGIRCL kimenetet 2M clock_test(4); A megfelelő órák tesztelése
gpio_init(); GPIO inicializáció
asm("CPSIE i"); Nyisd ki a teljes megszakítást
for(;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u); PTB8 kimenet magas szinten, D6LED lámpa ég Delayms (15000); Késés GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u); PTB9 kimenete magas szinten, D7LED lámpa ég Delayms (15000); Késés GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u); PTB10 magas szintű kimenet, D8LED lámpa ég Delayms (15000); Késés GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u); PTB11 kimenet magas szinten, D9LED lámpa égve Delayms (15000); Késés }
}[/mw_shl_code]
|