打印
[资料分享与下载]

【YL-KL26Z开发】 + 按键控制LED

[复制链接]
610|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
追逐浪花|  楼主 | 2015-10-13 19:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本次实验是通过K3和K4按键,控制两个LED,在官方例子中按键控制采用了查询管脚电平的方法。

我在本次实验中K3采用查询法控制LED,而K4采用IRQ中断的查询方式控制LED。

实验用的软件是KEIL5-MDK,光盘里面的教程很详细。

下面是原程序:
#include "includes.h"

void myDelay (INT32U ulTime)
{
    INT32U i;
    i = 0;
    while (ulTime--) {
        for (i = 0; i < 5000; i++);
    }
}

int  main (void)
{
    SystemCoreClockUpdate();
    SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK
                  | SIM_SCGC5_PORTB_MASK
                  | SIM_SCGC5_PORTC_MASK
                  | SIM_SCGC5_PORTD_MASK
                  | SIM_SCGC5_PORTE_MASK );   

  PORT_ENABLE_CLK(MKL_PORTA);
  PORT_ENABLE_CLK(MKL_PORTB);                                       
    PORT_ENABLE_CLK(MKL_PORTD);
   
    IO_FUN_SEL(MKL_PORTB,18,1);                                       
    IO_FUN_SEL(MKL_PORTB,19,1);
    IO_FUN_SEL(MKL_PORTD,1,1);  
    IO_FUN_SEL(MKL_PORTA,4,1);
   IO_IRQ_CONFIG(MKL_PORTA,4,2);     
    IO_FUN_SEL(MKL_PORTD,6,1);                     
                                                

  GPIO_DDR_OUTPUT(MKL_PORTB,18);                                    
    GPIO_DDR_OUTPUT(MKL_PORTB,19);
    GPIO_DDR_OUTPUT(MKL_PORTD,1);   
  
    GPIO_SET(MKL_PORTB,18);                                            
    GPIO_SET(MKL_PORTB,19);
    GPIO_SET(MKL_PORTD,1);   
   
    while(1){        
      
   if(!GPIO_GET_VALUE(MKL_PORTD,6))
    {
        GPIO_TOGGLE(MKL_PORTB,19);
     myDelay(200);               
    }
   
     if(PORTA_ISFR << 4)
    {
    PORTA_ISFR = (1 << 4);
        GPIO_TOGGLE(MKL_PORTB,18);
    }
   
    GPIO_TOGGLE(MKL_PORTD,1);
     myDelay(200);
    }   
}


相关帖子

沙发
风的样子| | 2015-10-14 07:37 | 只看该作者
一般的情况都用这两种方法,一个查询,一个中断

使用特权

评论回复
板凳
yanyu7856| | 2015-10-14 09:23 | 只看该作者
这是KDS么还是KEIL?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

256

帖子

1

粉丝