|
1: Numele experimentului Lampă de alergare cu patru cifre
2: Conținut experimentalRealizează ciclul de a clipi lampa de funcționare cu patru poziții
3. Scopul experimentului1: Stăpânește hardware-ul LEDCircuit 2: Stăpânirea metodei de configurare a registrelor la ieșirea modulului GPIO KL25 3: Stăpânirea metodei de programare a intermiterii ciclului luminii în patru cifre
4. Metode experimentale 1: Consultați schema circuitului acelei secțiuni S-a constatat că pinii PTB8, PTB9, PTB10 și PTB11 ai KL25 controlează cele patru diode LED emițătoare de lumină D6, D7, D8 și respectiv D9. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2: Configurarea registrelor corespunzătoare modulului GPIO (1) Consultați pagina 122 din Manualul de Referință KL25 și constatați că GPIO-ul este furnizat de ceasul platformei.
(2) Conectează ceasul Platformei și modulul POTRB și programează-l astfel: SIM_SCGC5=SIM_SCGC5_PORTB_MASK; SIM_SCGC5 pot fi consultate registrele
(3) Setează atributele pinilor de multiplexare, configurează PTB8, PTB9, PTB10 și PTB11 ca funcții GPIO și programează-le astfel: PORTB_PCR8=PORT_PCR_MUX(1); PORTB_PCR9=PORT_PCR_MUX(1); PORTB_PCR10=PORT_PCR_MUX(1); PORTB_PCR11=PORT_PCR_MUX(1); Consultați registrul PORTx_PCRn și pagina 46 din Fișa Tehnică KL25 pentru mai multe informații
(4) Setează direcția de intrare și ieșire a pinilor, setează PTB8, PTB9, PTB10 și PTB11 la ieșire și programează-le astfel: GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u); GPIOx_PDDR pot fi consultate registre
(5) Setează nivelul logic de ieșire al pinului, setează nivelul înalt de ieșire pentru PTB8, PTB9, PTB10, PTB11 și îl programează astfel: GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u); Consultați registrele GPIOx_PDOR
3: Realizarea intermiterii ciclice a lămpii de funcționare cu patru poziții [mw_shl_code=c,true] Consultați programul corespunzător în funcția principală a rutinei/* *********************************************************** * Nume fișier: main.c * funcție : funcție pentru principal * *********************************************************** */
#include "derivativ.h" #include "config.h" #include "crg.h" #include "gpio.h"
/******************************主函数*************************************/ int main (void)
{ asm("CPSID i"); Întreruperea generală a trecătorului
crg_default_init(); Ceasul implicit al sistemului crg_configuration_init(); Ceas după configurare MCGIRCLK_outenable(); Activează ieșirea MCGIRCL 2M clock_test(4); Teste ale ceasurilor corespunzătoare
gpio_init(); Inițializarea GPIO
asm ("CPSIE i"); Deschide întreruperea totală
pentru(;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u); Ieșire PTB8 la nivel înalt, lumină D6LED aprinsă întârzieri (15000); Întârziere GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u); Ieșire PTB9 la nivel înalt, lumină D7LED aprinsă întârzieri (15000); Întârziere GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u); Ieșire PTB10 la nivel înalt, lumină D8LED aprinsă întârzieri (15000); Întârziere GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u); Ieșire PTB11 la nivel înalt, lumină D9LED aprinsă întârzieri (15000); Întârziere }
}[/mw_shl_code]
|