|
1: Experimentets namn Fyrsiffrig löplampa
2: Experimentellt innehållInse cykeln av att blinka fyrlägeslampan
3. Syftet med experimentet1: Bemästra LED-hårdvaranKrets 2: Behärstra registerkonfigurationsmetoden för KL25 GPIO-modulens utgång 3: Bemästra programmeringsmetoden med fyrsiffrig blinkande löpande ljuscykel
4. Experimentella metoder 1: Konsultera kretsdiagrammet för det avsnittet Det visade sig att PTB8, PTB9, PTB10 och PTB11 stiften i KL25 styr de fyra LED-lysdioderna D6, D7, D8 respektive D9. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2: Konfigurera motsvarande register i GPIO-modulen (1) Se sida 122 i KL25 Reference Manual och se att GPIO tillhandahålls av plattformens klocka.
(2) Koppla ihop Plattformsklockan och POTRB-modulen, och programmera den enligt följande: SIM_SCGC5=SIM_SCGC5_PORTB_MASK; SIM_SCGC5 register kan konsulteras
(3) Sätt multiplexeringspinnattributen, konfigurera PTB8, PTB9, PTB10 och PTB11 som GPIO-funktioner och programmera dem enligt följande: PORTB_PCR8=PORT_PCR_MUX(1); PORTB_PCR9=PORT_PCR_MUX(1); PORTB_PCR10=PORT_PCR_MUX(1); PORTB_PCR11=PORT_PCR_MUX(1); Se PORTx_PCRn-registret och sida 46 i KL25-databladet för mer information
(4) Ställ in in- och utgångsriktningen på stiften, ställ in PTB8, PTB9, PTB10 och PTB11 som utgång, och programmera dem enligt följande: GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u); GPIOx_PDDR register kan konsulteras
(5) Ställ in utgångslogiknivån på stiftet, ställ in utgångsnivån på PTB8, PTB9, PTB10, PTB11 och programmera den enligt följande: GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u); Konsultera GPIOx_PDOR register
3: Inse cyklblinkningen hos fyrlägeslampan [mw_shl_code=c,true]Konsultera motsvarande program i huvudfunktionen av rutinen/* *********************************************************** * filnamn : main.c * funktion : funktion för huvud * *********************************************************** */
#include "derivat.h" #include "config.h" #include "crg.h" #include "gpio.h"
/******************************主函数*************************************/ int main(tomrum)
{ asm ("CPSID i"); Den allmänna avbrottet av passet
crg_default_init(); Systemstandardklocka crg_configuration_init(); Klocka efter konfiguration MCGIRCLK_outenable(); Möjliggör MCGIRCL-utgång 2M clock_test(4); Tester av motsvarande klockor
gpio_init(); GPIO-initialisering
asm("CPSIE i"); Öppna den totala avbrottet
för(;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u); PTB8 utgång hög nivå, D6LED-lampa tänd delayms (15 000); Fördröjning GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u); PTB9 utgång hög nivå, D7LED-lampa på delayms (15 000); Fördröjning GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u); PTB10 utgående högnivå, D8LED-lampa på delayms (15 000); Fördröjning GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u); PTB11 utgång hög nivå, D9LED-lampa på delayms (15 000); Fördröjning }
}[/mw_shl_code]
|