|
1: Název experimentu Čtyřmístná běžící lampa
2: Experimentální obsahUvědomte si cyklus blikání čtyřpolohového běžícího světla
3. Účel experimentu1: Ovládnutí LED hardwaruOkruh 2: Ovládnutí metody konfigurace registrů výstupu modulu KL25 GPIO 3: Ovládněte programovací metodu čtyřmístného blikání běžícího světelného cyklu
4. Experimentální metody 1: Podívejte se na schéma zapojení této části Zjistilo se, že piny PTB8, PTB9, PTB10 a PTB11 KL25 ovládají čtyři LED světelné diody D6, D7, D8 a D9. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2: Konfigurujte odpovídající registry GPIO modulu (1) Podívejte se na stranu 122 v KL25 Reference Manual a zjistěte, že GPIO je poskytováno platformovými hodinami.
(2) Připojit hodinový signál platformy a modul POTRB a naprogramovat ho následovně: SIM_SCGC5=SIM_SCGC5_PORTB_MASK; SIM_SCGC5 registry lze konzultovat
(3) Nastavte atributy multiplexovacích pinů, nakonfigurujte funkce PTB8, PTB9, PTB10 a PTB11 jako GPIO funkce a naprogramujte je následovně: PORTB_PCR8=PORT_PCR_MUX(1); PORTB_PCR9=PORT_PCR_MUX(1); PORTB_PCR10=PORT_PCR_MUX(1); PORTB_PCR11=PORT_PCR_MUX(1); Pro více informací se podívejte na PORTx_PCRn registr a stranu 46 v datovém listu KL25
(4) Nastavte směr vstupu a výstupu pinů, nastavte výstup PTB8, PTB9, PTB10 a PTB11 a naprogramujte je následovně: GPIOB_PDDR=GPIO_PDDR_PDD(0x00000f00u); GPIOx_PDDR registry lze konzultovat
(5) Nastavte výstupní logickou úroveň pinu, nastavte výstupní vysokou úroveň PTB8, PTB9, PTB10, PTB11 a naprogramujte ji následovně: GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u); Konzultujte GPIOx_PDOR registry
3: Uvědomit si blikání cyklů čtyřpolohového provozovacího světla [mw_shl_code=c,true] Konzultujte odpovídající program v hlavní funkci rutiny/* *********************************************************** * název souboru : main.c * funkce : funkce pro hlavní * *********************************************************** */
#include "derivative.h" #include "config.h" #include "crg.h" #include "gpio.h"
/******************************主函数*************************************/ int main(void)
{ asm(" CPSID i"); Obecné přerušení průsmyku
crg_default_init(); Výchozí hodiny systému crg_configuration_init(); Hodiny po konfiguraci MCGIRCLK_outenable(); Umožňuje výstup MCGIRCL 2M clock_test(4); Testy odpovídajících hodin
gpio_init(); Inicializace GPIO
asm(" CPSIE i"); Otevřete úplné přerušení
pro(;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u); PTB8 vydává vysokou úroveň, světlo D6LED zapnuté zpoždění (15000); Zpoždění GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u); PTB9 vydává vysokou úroveň, světlo D7LED svítí zpoždění (15000); Zpoždění GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u); PTB10 vydává vysokou úroveň, D8LED svítí zpoždění (15000); Zpoždění GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u); PTB11 vydává vysokou úroveň, D9LED svítí zpoždění (15000); Zpoždění }
}[/mw_shl_code]
|