|
1: Kokeen nimi Nelinumeroinen ajovalo
2: Kokeellinen sisältöToteuta neliasennoisen ajovalon vilkkumisen sykli.
3. Kokeen tarkoitus1: Hallitse LED-laitteistoPiiri 2: Hallitse KL25 GPIO -moduulin ulostulon rekisterikonfigurointimenetelmä 3: Hallitse nelinumeroisen juoksevan valon syklivilkkumisen ohjelmointimenetelmä
4. Kokeelliset menetelmät 1: Katso kyseisen osion piirikaavio Havaittiin, että KL25:n PTB8, PTB9, PTB10 ja PTB11 -nasat ohjaavat neljää LED-valodiodia: D6, D7, D8 ja D9. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2: Määritä GPIO-moduulin vastaavat rekisterit (1) Katso KL25-viiteoppaan sivu 122 ja huomaa, että GPIO saadaan laiturikellosta.
(2) Yhdistä alustan kellokello ja POTRB-moduuli ja ohjelmoi se seuraavasti: SIM_SCGC5=SIM_SCGC5_PORTB_MASK; SIM_SCGC5 rekistereihin voi tutustua
(3) Aseta multiplexausnastojen attribuutit, konfiguroi PTB8, PTB9, PTB10 ja PTB11 GPIO-funktioiksi ja ohjelmoi ne seuraavasti: PORTB_PCR8=PORT_PCR_MUX(1); PORTB_PCR9=PORT_PCR_MUX(1); PORTB_PCR10=PORT_PCR_MUX(1); PORTB_PCR11=PORT_PCR_MUX(1); Lisätietoja löytyy PORTx_PCRn-rekisteristä ja KL25-tietolehden sivulta 46
(4) Aseta nastojen tulo- ja lähtösuunta, aseta PTB8, PTB9, PTB10 ja PTB11 lähtöön ja ohjelmoi ne seuraavasti: GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u); GPIOx_PDDR rekistereitä voi tutkia
(5) Aseta pinnin lähtölogiikkataso, aseta PTB8:n, PTB9:n, PTB10:n, PTB11:n lähtötaso ja ohjelmoi se seuraavasti: GPIOB_PDOR=GPIO_PDOR_PDO(0x000000f00u); Katso GPIOx_PDOR rekisterit
3: Toteuta neliasennoisen ajovalon syklinen vilkkuminen [mw_shl_code=c,true]Konsultoi vastaavaa ohjelmaa rutiinin pääfunktiossa/* *********************************************************** * Tiedoston nimi: main.c * funktio : funktio päälle * *********************************************************** */
#include "derivative.h" #include "config.h" #include "crg.h" #include "gpio.h"
/******************************主函数*************************************/ int main(void)
{ asm ("CPSID i"); Solan yleinen keskeytys
crg_default_init(); Järjestelmän oletuskello crg_configuration_init(); Kello konfiguroinnin jälkeen MCGIRCLK_outenable(); Mahdollistaa MCGIRCL-lähtö 2M clock_test(4); Vastaavan kellon testit
gpio_init(); GPIO-alustus
asm ("CPSIE i"); Avaa koko keskeytys
for(;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u); PTB8-lähtö korkealla tasolla, D6LED-valo päällä viivästykset (15000); Viivästys GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u); PTB9-lähtö korkealla tasolla, D7LED-valo päällä viivästykset (15000); Viivästys GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u); PTB10-lähtö korkealla tasolla, D8LED-valo päällä viivästykset (15000); Viivästys GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u); PTB11-lähtö korkealla tasolla, D9LED-valo päällä viivästykset (15000); Viivästys }
}[/mw_shl_code]
|