查看: 4201|回复: 5

[原创] 【YL-KL26Z开发】 + 按键控制LED

[复制链接]

该用户从未签到

42

主题

340

帖子

0

高级会员

Rank: 4

积分
722
最后登录
2016-1-9
发表于 2015-7-12 16:31:46 | 显示全部楼层 |阅读模式
由于上周考试,所以过了近一周才发这第二篇分享。

本次实验是通过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);
    }   
}

下面是视频:




https://v.youku.com/v_show/id_XMTI4MzEwODIxNg==.html


在本次实验中遇到了一些问题:

  在使用IRQ中断时,DMA触发与正常触发有什么区别?;为什么用正常的下降沿触发时,程序不会有上面的结果,设置为DMA时就可以?

请大家帮忙解答一下这两个问题,谢谢了!


评分

参与人数 1NXP金币 +25 收起 理由
小七 + 25 打赏

查看全部评分

回复

使用道具 举报

  • TA的每日心情
    开心
    2017-1-24 09:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    654

    主题

    3262

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    13128
    最后登录
    2019-1-27
    发表于 2015-7-12 16:37:00 | 显示全部楼层
    有实验过的飞友,探讨下哦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    42

    主题

    340

    帖子

    0

    高级会员

    Rank: 4

    积分
    722
    最后登录
    2016-1-9
     楼主| 发表于 2015-7-12 21:25:21 | 显示全部楼层
    小七 发表于 2015-7-12 16:37
    有实验过的飞友,探讨下哦

    谢谢小七了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16702
    最后登录
    1970-1-1
    发表于 2015-7-12 23:03:55 | 显示全部楼层
    多谢分享
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    70

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    244
    最后登录
    2016-2-23
    发表于 2016-1-12 19:59:27 | 显示全部楼层
    本帖最后由 caigen0001 于 2016-1-12 20:08 编辑

          if(PORTA_ISFR)
            {
                PORTA_ISFR =(1<<4);
                GPIO_TOGGLE(MKL_PORTB,18);
            }
    //这样写,既可DMA触发与电平触发,边沿触发
    H0U{999RXI5N{C{ABT7IA]M.png
    `3]SKJ$6BF)YRI6INJR812J.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-1-16 12:20
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    12

    主题

    653

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1667
    最后登录
    2022-5-2
    发表于 2016-3-7 17:35:28 | 显示全部楼层
    牛!!!!!                  
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-22 06:36 , Processed in 0.095493 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表