|
1: Eksperimento pavadinimas Keturių skaitmenų žibintas
2: Eksperimentinis turinysRealizuokite keturių padėčių žibinto mirksėjimo ciklą
3. Eksperimento tikslas1: Įvaldykite LED aparatinę įrangągrandinė 2: Įsisavinkite KL25 GPIO modulio išvesties registro konfigūravimo metodą 3: Įvaldykite keturių skaitmenų žibintų ciklo mirksėjimo programavimo metodą
4. Eksperimentiniai metodai 1: Peržiūrėkite to skyriaus schemą Nustatyta, kad KL25 PTB8, PTB9, PTB10 ir PTB11 kaiščiai valdo atitinkamai keturis LED šviesos diodus D6, D7, D8 ir D9. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2: Sukonfigūruokite atitinkamus GPIO modulio registrus (1) Žiūrėkite KL25 informacinio vadovo 122 puslapį ir pastebėkite, kad GPIO pateikia platformos laikrodis.
(2) Prijunkite platformos laikrodžio laikrodį ir POTRB modulį ir užprogramuokite jį taip: SIM_SCGC5=SIM_SCGC5_PORTB_MASK; SIM_SCGC5 galima susipažinti su registrais
(3) Nustatykite multipleksavimo kaiščio atributus, sukonfigūruokite PTB8, PTB9, PTB10 ir PTB11 kaip GPIO funkcijas ir užprogramuokite juos taip: PORTB_PCR8=PORT_PCR_MUX(1); PORTB_PCR9=PORT_PCR_MUX(1); PORTB_PCR10=PORT_PCR_MUX(1); PORTB_PCR11=PORT_PCR_MUX(1); Daugiau informacijos rasite PORTx_PCRn registre ir KL25 duomenų lapo 46 puslapyje
(4) Nustatykite kaiščių įvesties ir išvesties kryptį, nustatykite PTB8, PTB9, PTB10 ir PTB11 į išvestį ir užprogramuokite juos taip: GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u); GPIOx_PDDR registruose galima susipažinti
(5) Nustatykite kaiščio išvesties loginį lygį, nustatykite aukštą PTB8, PTB9, PTB10, PTB11 išvesties lygį ir užprogramuokite jį taip: GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u); Susipažinkite su GPIOx_PDOR registrais
3: Suvokkite keturių padėčių žibinto mirksėjimą [mw_shl_code=c,true]Peržiūrėkite atitinkamą programą pagrindinėje rutinos funkcijoje/* *********************************************************** * Failo pavadinimas: main.c * funkcija : funkcija pagrindiniam * *********************************************************** */
#include "išvestinė.h" #include "config.h" #include "crg.h" #include "gpio.h"
/******************************主函数*************************************/ int pagrindinis(void)
{ asm(" CPSID i"); Bendras leidimo nutraukimas
crg_default_init(); Numatytasis sistemos laikrodis crg_configuration_init (); Laikrodis po konfigūracijos MCGIRCLK_outenable (); Įgalina MCGIRCL išvestį 2M clock_test straipsnio 4 dalis; Atitinkamų laikrodžių bandymai
gpio_init(); GPIO inicijavimas
asm(" CPSIE i"); Atidaryti bendrą pertrauką
už(;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u); PTB8 išvesties aukštas lygis, D6LED lemputė įjungta vėlavimai(15000); Vėlavimas GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u); PTB9 išvesties aukštas lygis, D7LED lemputė įjungta vėlavimai(15000); Vėlavimas GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u); PTB10 išvesties aukšto lygio, D8LED lemputė įjungta vėlavimai(15000); Vėlavimas GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u); PTB11 išvesties aukštas lygis, D9LED lemputė įjungta vėlavimai(15000); Vėlavimas }
}[/mw_shl_code]
|