|
1: Nazwa eksperymentu Czterocyfrowa lampa biegowa
2: Zawartość eksperymentalnaZorientuj się, jak wygląda cykl czteropozycyjnej lampy
3. Cel eksperymentu1: Opanuj sprzęt LEDObwod 2: Opanowanie metody konfiguracji rejestrów na wyjściu modułu GPIO KL25 3: Opanuj metodę programowania czterocyfrowego cyklu światła
4. Metody eksperymentalne 1: Sprawdź schemat obwodu tego fragmentu Stwierdzono, że piny PTB8, PTB9, PTB10 i PTB11 KL25 kontrolują cztery diody LED LED odpowiednio D6, D7, D8 i D9. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2: Konfiguruj odpowiadające rejestry modułu GPIO (1) Sprawdź stronę 122 w podręczniku KL25 Reference Manual i zobacz, że GPIO jest dostarczany przez zegar platformy.
(2) Połączyć zegar zegara platformy z modułem POTRB i zaprogramować go następująco: SIM_SCGC5=SIM_SCGC5_PORTB_MASK; SIM_SCGC5 rejestrów można konsultować
(3) Ustaw atrybuty pinów multipleksowania, konfiguruj PTB8, PTB9, PTB10 i PTB11 jako funkcje GPIO i programuj je w następujący sposób: PORTB_PCR8=PORT_PCR_MUX(1); PORTB_PCR9=PORT_PCR_MUX(1); PORTB_PCR10=PORT_PCR_MUX(1); PORTB_PCR11=PORT_PCR_MUX(1); Więcej informacji można znaleźć w rejestrze PORTx_PCRn oraz na stronie 46 karty danych KL25
(4) Ustaw kierunek wejścia i wyjścia pinów, ustaw PTB8, PTB9, PTB10 i PTB11 na wyjście i zaprogramuj je w następujący sposób: GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u); GPIOx_PDDR rejestrów można konsultować
(5) Ustaw poziom logiczny wyjścia pinu, ustaw wysoki poziom wyjściowy PTB8, PTB9, PTB10, PTB11 i zaprogramuj go w następujący sposób: GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u); Sprawdź rejestry GPIOx_PDOR
3: Zidentyfikować cyklu czteropozycyjnej lampy biegowej [mw_shl_code=c,true] Skonsultuj się z odpowiednim programem w głównej funkcji rutyny/* *********************************************************** * nazwa pliku : main.c * funkcja : funkcja dla głównej * *********************************************************** */
#include "derivative.h" #include "config.h" #include "crg.h" #include "gpio.h"
/******************************主函数*************************************/ int main(void)
{ asm(" CPSID i"); Ogólne przerwanie przełęczy
crg_default_init(); Domyślny zegar systemu crg_configuration_init(); Zegar po konfiguracji MCGIRCLK_outenable(); Umożliwia wyjście MCGIRCL 2M clock_test(4); Testy odpowiadających im zegarów
gpio_init(); Inicjalizacja GPIO
asm(" CPSIE i"); Otwórz całkowite przerwanie
dla(;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u); PTB8 wydawał wysoki poziom, dioda D6LED włączona opóźnienia (15000); Opóźnienie GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u); PTB9 wydawał wysoki poziom, dioda D7LED włączona opóźnienia (15000); Opóźnienie GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u); PTB10 wydawał wysoki poziom, światło D8LED włączone opóźnienia (15000); Opóźnienie GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u); PTB11 wydawał wysoki poziom, światło D9LED włączone opóźnienia (15000); Opóźnienie }
}[/mw_shl_code]
|