|
1: Ime eksperimenta Štirimestna tekaška luč
2: Eksperimentalna vsebinaZavedajte se cikla utripanja štiripoložajne svetilke
3. Namen eksperimenta1: Obvladujte LED strojno opremoSteza 2: Obvladovanje metode konfiguracije registra izhoda modula KL25 GPIO 3: Obvladaj programsko metodo štirimestnega utripanja svetlobnega cikla
4. Eksperimentalne metode 1: Preverite shemo vezja tega odseka Ugotovljeno je bilo, da pini PTB8, PTB9, PTB10 in PTB11 v KL25 nadzorujejo štiri LED svetleče diode: D6, D7, D8 in D9. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2: Konfigurirajte ustrezne registre GPIO modula (1) Preverite stran 122 v KL25 Reference Manual in ugotovite, da GPIO zagotavlja platforma ura.
(2) Povežite uro na platformi in modul POTRB ter ga programirajte na naslednji način: SIM_SCGC5=SIM_SCGC5_PORTB_MASK; SIM_SCGC5 registre je mogoče pregledati
(3) Nastavite atribute multipleksirajočega pina, konfigurirajte PTB8, PTB9, PTB10 in PTB11 kot GPIO funkcije in jih programirajte na naslednji način: PORTB_PCR8=PORT_PCR_MUX(1); PORTB_PCR9=PORT_PCR_MUX(1); PORTB_PCR10=PORT_PCR_MUX(1); PORTB_PCR11=PORT_PCR_MUX(1); Za več informacij glejte register PORTx_PCRn in stran 46 podatkovnega lista KL25
(4) Nastavite vhodno in izhodno smer pinov, nastavite PTB8, PTB9, PTB10 in PTB11 na izhod in jih programirajte takole: GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u); GPIOx_PDDR registre je mogoče pregledati
(5) Nastavite izhodno logično raven pina, nastavite izhodno visoko raven PTB8, PTB9, PTB10, PTB11 in jo programirate na naslednji način: GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u); Preverite GPIOx_PDOR registre
3: Zavedanje cikla utripanja štiri-položajne svetilke [mw_shl_code=c,true] Posvetujte se z ustreznim programom v glavni funkciji rutine/* *********************************************************** * ime datoteke: main.c * funkcija : funkcija za glavno * *********************************************************** */
#include "derivative.h" #include "config.h" #include "crg.h" #include "gpio.h"
/******************************主函数*************************************/ int main(void)
{ asm(" CPSID i"); Splošna prekinitev prelaza
crg_default_init(); Privzeta ura sistema crg_configuration_init(); Ura po konfiguraciji MCGIRCLK_outenable(); Omogoča MCGIRCL izhod 2M clock_test(4); Preizkusi ustreznih ur
gpio_init(); Inicializacija GPIO
asm(" CPSIE i"); Odpri popolno prekinitev
for(;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u); PTB8 izhod na visoki ravni, D6LED lučka prižgana zamude (15000); Zamuda GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u); PTB9 izhoda na visoki ravni, lučka D7LED prižgana zamude (15000); Zamuda GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u); PTB10 izhod na visoki ravni, prižgana D8LED lučka zamude (15000); Zamuda GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u); PTB11 izhoda visoko nivo, D9LED lučka prižgana zamude (15000); Zamuda }
}[/mw_shl_code]
|