|
1: Име на експеримента Четирицифрена лампа за движение
2: Експериментално съдържаниеОсъзнайте цикъла на премигване на четирипозиционната лампа
3. Цел на експеримента1: Овладейте LED хардуераПиста 2: Овладяване на метода за конфигуриране на регистрите на изхода на KL25 GPIO модула 3: Овладяване на метода на програмиране на четирицифрен мигащ цикъл на светлини
4. Експериментални методи 1: Консултирайте се с схемата на тази секция Установено беше, че пиновите PTB8, PTB9, PTB10 и PTB11 на KL25 управляват четирите LED светодиодни диода D6, D7, D8 и D9 съответно. file:///C:\Users\AA\AppData\Local\Temp\ksohtml\wps_clip_image-3968.png 2: Конфигуриране на съответните регистри на GPIO модула (1) Вижте страница 122 от Справочното ръководство за KL25 и установете, че GPIO се осигурява от часовника на платформата.
(2) Свържете часовника на платформата и модула POTRB и го програмирайте по следния начин: SIM_SCGC5=SIM_SCGC5_PORTB_MASK; SIM_SCGC5 регистри могат да се консултират
(3) Задайте атрибутите на мултиплексиращия пин, конфигурирайте PTB8, PTB9, PTB10 и PTB11 като GPIO функции и ги програмирайте по следния начин: PORTB_PCR8=PORT_PCR_MUX(1); PORTB_PCR9=PORT_PCR_MUX(1); PORTB_PCR10=PORT_PCR_MUX(1); PORTB_PCR11=PORT_PCR_MUX(1); Вижте регистъра PORTx_PCRn и страница 46 от KL25 Data Sheet за повече информация
(4) Задайте посоката на вход и изход на пиновете, настройте PTB8, PTB9, PTB10 и PTB11 да изходят и ги програмирайте по следния начин: GPIOB_PDDR=GPIO_PDDR_PDD(0x000000f00u); GPIOx_PDDR регистри могат да бъдат консултирани
(5) Задайте изходното логическо ниво на пина, задайте изходното високо ниво PTB8, PTB9, PTB10, PTB11 и го програмирайте по следния начин: GPIOB_PDOR=GPIO_PDOR_PDO(0x00000f00u); Консултирайте се GPIOx_PDOR регистри
3: Осъзнайте цикличното мигане на четирипозиционната лампа [mw_shl_code=c,true]Консултирайте се със съответната програма в основната функция на рутината/* *********************************************************** * име на файл: main.c * функция : функция за основна * *********************************************************** */
#include "derivative.h" #include "config.h" #include "crg.h" #include "gpio.h"
/******************************主函数*************************************/ int main(void)
{ asm("CPSID i"); Общото прекъсване на прохода
crg_default_init(); Системен часов сигнал по подразбиране crg_configuration_init(); Часовник след конфигурация MCGIRCLK_outenable(); Активира MCGIRCL изход 2M clock_test(4); Тестове на съответните часовници
gpio_init(); Инициализация на GPIO
asm("CPSIE i"); Отворете тоталното прекъсване
for(;; ) { GPIOB_PDOR=GPIO_PDOR_PDO(0x00000100u); PTB8 изход на високо ниво, светене на D6LED светлина закъснения (15000); Забавяне GPIOB_PDOR=GPIO_PDOR_PDO(0x00000200u); Изход на PTB9 на високо ниво, светлината D7LED включена закъснения (15000); Забавяне GPIOB_PDOR=GPIO_PDOR_PDO(0x00000400u); PTB10 излиза на високо ниво, D8LED светлина включена закъснения (15000); Забавяне GPIOB_PDOR=GPIO_PDOR_PDO(0x00000800u); PTB11 излиза на високо ниво, D9LED светлината свети закъснения (15000); Забавяне }
}[/mw_shl_code]
|