|
1: Eksperimendi nimi Neljakohaline jooksulamp
2: Eksperimentaalne sisuMõista neljaasendilise jooksulambi vilgutamise tsüklit
3. Eksperimendi eesmärk1: Valda LED-riistvaraRingrada 2: Valda KL25 GPIO mooduli väljundi registri seadistamise meetod 3: Valda neljakohalise jooksva tule tsükli programmeerimismeetodit
4. Eksperimentaalsed meetodid 1: Vaata selle sektsiooni skeemi Leiti, et KL25 PTB8, PTB9, PTB10 ja PTB11 tihvtid juhivad vastavalt nelja LED-valgusdioodi D6, D7, D8 ja D9. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2: Seadista GPIO mooduli vastavad registrid (1) Vaata KL25 viitejuhendi lehekülge 122 ja leia, et GPIO annab platvormikell.
(2) Ühendada platvormi kella kell ja POTRB moodul ning programmeerida see järgmiselt: SIM_SCGC5=SIM_SCGC5_PORTB_MASK; SIM_SCGC5 registreid saab kasutada
(3) Seadista multipleksimistihvti atribuudid, seadista PTB8, PTB9, PTB10 ja PTB11 GPIO funktsioonideks ning programmeeri need järgmiselt: PORTB_PCR8=PORT_PCR_MUX(1); PORTB_PCR9=PORT_PCR_MUX(1); PORTB_PCR10=PORT_PCR_MUX(1); PORTB_PCR11=PORT_PCR_MUX(1); Lisateabe saamiseks vaadake PORTx_PCRn registrit ja KL25 andmelehe lehekülge 46
(4) Seadista tihvtide sisend- ja väljundsuund, PTB8, PTB9, PTB10 ja PTB11 väljundiks ning programmeerida need järgmiselt: GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u); GPIOx_PDDR registreid saab kasutada
(5) Seadista tihvti väljundloogika tase, seadista PTB8, PTB9, PTB10, PTB11 väljundi kõrge tase ja programmeerida see järgmiselt: GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u); Vaata GPIOx_PDOR registreid
3: Rakenda neljaasendilise käivitule tsükli vilkumist [mw_shl_code=c,true]Konsulteeri vastava programmi põhifunktsioonis rutiinis/* *********************************************************** * Failinimi: main.c * funktsioon : funktsioon peamise jaoks * *********************************************************** */
#include "derivative.h" #include "config.h" #include "crg.h" #include "gpio.h"
/******************************主函数*************************************/ int main(void)
{ asm ("CPSID i"); Kuru üldine katkestus
crg_default_init(); Süsteemi vaikekell crg_configuration_init(); Kell pärast konfiguratsiooni MCGIRCLK_outenable(); Võimaldab MCGIRCL väljundit 2M clock_test(4); Vastavate kellade testid
gpio_init(); GPIO initsialiseerimine
asm ("CPSIE i"); Ava täielik katkestus
for(;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u); PTB8 väljund kõrgel tasemel, D6LED tuli põleb delayms(15000); Viivitus GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u); PTB9 väljund kõrgel tasemel, D7LED tuli põleb delayms(15000); Viivitus GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u); PTB10 väljund kõrgel tasemel, D8LED tuli põleb delayms(15000); Viivitus GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u); PTB11 väljund kõrgel tasemel, D9LED tuli põleb delayms(15000); Viivitus }
}[/mw_shl_code]
|