[资料分享与下载] yl-KL26库函数学习-按键

[复制链接]
850|2
 楼主| Tennasi 发表于 2015-11-21 19:00 | 显示全部楼层 |阅读模式
对于山外的KEY我也改动不少,由于我们用按键主要是方便使用,没有必要添加一连串的KEY
这是我所改动的地方
1.在vcan_key.h即KEY头文件里直接采用宏定义方法(由于我们所用的开发板上有两个按键那就先用两个,将最后一个注释掉)
  1. /******************************噬猎者编辑***********************************/
  2. #ifndef __VCAN_KEY_H__
  3. #define __VCAN_KEY_H__

  4. //配置系统板的KEY硬件
  5. #define KEY0  PTD6_IN
  6. #define KEY1  PTA4_IN
  7. //#define KEY2  PTC17_IN

  8. //定义按键IO口
  9. #define KEY0_IN  PTD6
  10. #define KEY1_IN  PTA4
  11. //#define KEY2_IN  PTC17

  12.           //对应的端口号


  13. // KEY初始化    宏定义   效率高
  14. #define KEY_INIT()             gpio_init(KEY0_IN,GPI,0);   \
  15.                                        gpio_init(KEY1_IN,GPI,0)//;   \
  16.                               //         gpio_init(KEY2_IN,GPI,0)
  17.                
  18.                                                                

  19. //定义延时,方便延时
  20. #include    "MKL_mcg.h"
  21. #define   KEY_DELAY           DELAY()
  22. #define   KEY_DELAY_MS(x)     DELAY_MS(x)
  23. void key();


  24. #endif  //__VCAN_KEY_H__
2.VCAN_key.c文件中: 只包含key函数,如果还有其他KEY可以从注释掉的里面添加
不过要注意在.c文件中使用其他文件里面的功能时需要附上其他的.c文件
  1. /************************噬猎者编辑***********************************
  2. //KEY主程序
  3. KEY0 = PTD6

  4. //KEY1 = PTC19

  5. KEY函数:
  6. KEY_INIT();//按键初始化
  7. data = KEY0; //获取按键输入值  
  8. ************************************************************************/
  9. /*
  10. * 包含头文件
  11. */
  12. #include "common.h"
  13. #include "MKL_port.h"
  14. #include "MKL_gpio.h"
  15. #include "VCAN_key.h"
  16. /******************用户的程序头文件*************************************/
  17. #include "VCAN_LED.H"//由于使用LED所以就加上其头文件



  18. void key()
  19. {
  20.   u8 i=0;
  21. //============================   0   ===============================//
  22.   if(0==KEY0)
  23.   {
  24.       KEY_DELAY_MS(10);
  25.       if(0==KEY0)
  26.       {
  27.         LED_TURN(LED0);
  28.         
  29.         i=0;while((0==KEY0)&&(i<50)){i++;KEY_DELAY_MS(10);}
  30.       }
  31.   }
  32. //============================   1   ===============================//
  33.   if(0==KEY1)
  34.   {
  35.       KEY_DELAY_MS(10);
  36.       if(0==KEY1)
  37.       {
  38.         LED_TURN(LED1);
  39.         
  40.         i=0;while((0==KEY1)&&(i<50)){i++;KEY_DELAY_MS(10);}
  41.       }
  42.   }

  43. }




















  44. /********************************噬猎者编辑*******************************
  45. void key()
  46. {
  47.   u8 i=0;
  48. //============================   0   ===============================//
  49.   if(0==KEY0)
  50.   {
  51.       KEY_DELAY_MS(10);
  52.       if(0==KEY0)
  53.       {
  54.         LED_TURN(LED0);
  55.         
  56.         i=0;while((0==KEY0)&&(i<50)){i++;KEY_DELAY_MS(10);}
  57.       }
  58.   }
  59. //============================   1   ===============================//
  60.   if(0==KEY1)
  61.   {
  62.       KEY_DELAY_MS(10);
  63.       if(0==KEY1)
  64.       {
  65.         LED_TURN(LED1);
  66.         
  67.         i=0;while((0==KEY1)&&(i<50)){i++;KEY_DELAY_MS(10);}
  68.       }
  69.   }
  70. //============================   2   ===============================//
  71.   if(0==KEY2)
  72.   {
  73.       KEY_DELAY_MS(10);
  74.       if(0==KEY2)
  75.       {
  76.         LED_TURN(LED2);
  77.         
  78.         i=0;while((0==KEY2)&&(i<50)){i++;KEY_DELAY_MS(10);}
  79.       }
  80.   }
  81. //============================   3   ===============================//
  82.   if(0==KEY3)
  83.   {
  84.       KEY_DELAY_MS(10);
  85.       if(0==KEY3)
  86.       {
  87.         LED_TURN(LED3);
  88.         
  89.         i=0;while((0==KEY3)&&(i<50)){i++;KEY_DELAY_MS(10);}
  90.       }
  91.   }
  92. //============================   4   ===============================//
  93.   if(0==KEY4)
  94.   {
  95.       KEY_DELAY_MS(10);
  96.       if(0==KEY4)
  97.       {

  98.         
  99.         i=0;while((0==KEY4)&&(i<50)){i++;KEY_DELAY_MS(10);}
  100.       }
  101.   }
  102. //============================   5   ===============================//
  103.   if(0==KEY5)
  104.   {
  105.       KEY_DELAY_MS(10);
  106.       if(0==KEY5)
  107.       {

  108.         
  109.         i=0;while((0==KEY5)&&(i<50)){i++;KEY_DELAY_MS(10);}
  110.       }
  111.   }
  112. //============================   6   ===============================///
  113.   if(0==KEY6)
  114.   {
  115.       KEY_DELAY_MS(10);
  116.       if(0==KEY6)
  117.       {
  118.         
  119.         
  120.         i=0;while((0==KEY6)&&(i<50)){i++;KEY_DELAY_MS(10);}
  121.       }
  122.   }
  123. //================================================================//
  124.   if(0==KEY7)
  125.   {
  126.       KEY_DELAY_MS(10);
  127.       if(0==KEY7)
  128.       {
  129.         
  130.         
  131.         i=0;while((0==KEY7)&&(i<50)){i++;KEY_DELAY_MS(10);}
  132.       }
  133.   }
  134. //=================================================================//
  135. }
  136. ***************************************************************************/














 楼主| Tennasi 发表于 2015-11-21 19:01 | 显示全部楼层
按键控制LED点亮熄灭程序

3.KEY.zip

1.69 MB, 下载次数: 0

quray1985 发表于 2015-11-22 17:10 | 显示全部楼层
这个按键程序有没有长按和短按之分啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

169

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部