|
1: Eksperimenta nosaukums Četrciparu gaitas lukturis
2: Eksperimentālais satursRealizējiet četru pozīciju gaitas luktura mirgošanas ciklu
3. Eksperimenta mērķis1: Apgūstiet LED aparatūruķēde 2: Apgūstiet KL25 GPIO moduļa izejas reģistra konfigurācijas metodi 3: Apgūstiet četrciparu gaitas lukturu cikla mirgošanas programmēšanas metodi
4. Eksperimentālās metodes 1: Iepazīstieties ar šīs sadaļas shēmu Tika konstatēts, ka KL25 PTB8, PTB9, PTB10 un PTB11 tapas kontrolē attiecīgi četras LED gaismas diodes D6, D7, D8 un D9. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2: Konfigurējiet atbilstošos GPIO moduļa reģistrus (1) Skatiet KL25 atsauces rokasgrāmatas 122. lappusi un konstatējiet, ka GPIO nodrošina platformas pulkstenis.
(2) Pievienojiet platformas pulksteņa pulksteni un POTRB moduli un ieprogrammējiet to šādi: SIM_SCGC5=SIM_SCGC5_PORTB_MASK; SIM_SCGC5 reģistros var aplūkot
(3) Iestatiet multipleksēšanas tapu atribūtus, konfigurējiet PTB8, PTB9, PTB10 un PTB11 kā GPIO funkcijas un programmējiet tos šādi: PORTB_PCR8=PORT_PCR_MUX(1); PORTB_PCR9=PORT_PCR_MUX(1); PORTB_PCR10=PORT_PCR_MUX(1); PORTB_PCR11=PORT_PCR_MUX(1); Plašāku informāciju skatiet PORTx_PCRn reģistrā un KL25 datu lapas 46. lappusē
(4) Iestatiet tapu ieejas un izejas virzienu, iestatiet PTB8, PTB9, PTB10 un PTB11 uz izeju un programmējiet tos šādi: GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u); GPIOx_PDDR reģistros var aplūkot
(5) Iestatiet tapas izejas loģisko līmeni, iestatiet PTB8, PTB9, PTB10, PTB11 izejas augsto līmeni un ieprogrammējiet to šādi: GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u); Iepazīties ar GPIOx_PDOR reģistriem
3: Realizējiet četru pozīciju gaitas luktura cikla mirgošanu [mw_shl_code=c,true]Konsultējieties ar atbilstošo programmu rutīnas galvenajā funkcijā/* *********************************************************** * Faila nosaukums: main.c * funkcija : funkcija galvenajam * *********************************************************** */
#include "atvasinājums.h" #include "config.h" #include "crg.h" #include "gpio.h"
/******************************主函数*************************************/ int main(void)
{ asm(" CPSID i"); Vispārēja caurlaides pārtraukšana
crg_default_init (); Sistēmas noklusējuma pulkstenis crg_configuration_init (); Pulkstenis pēc konfigurācijas MCGIRCLK_outenable (); Iespējo MCGIRCL izeju 2M clock_test 4. punkts; Atbilstošo pulksteņu testi
gpio_init (); GPIO inicializācija
asm(" CPSIE i"); Atvērt kopējo pārtraukumu
par (;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u); PTB8 izejas augsts līmenis, D6LED gaisma ieslēgta kavējumi(15000); Kavēšanās GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u); PTB9 izejas augsts līmenis, D7LED gaisma ieslēgta kavējumi(15000); Kavēšanās GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u); PTB10 izejas augsts līmenis, D8LED gaisma ieslēgta kavējumi(15000); Kavēšanās GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u); PTB11 izejas augsts līmenis, D9LED gaisma ieslēgta kavējumi(15000); Kavēšanās }
}[/mw_shl_code]
|