打印

关于DSP TMS320 F28035的按键驱动程序

[复制链接]
819|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qwe890asd|  楼主 | 2017-10-14 11:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于DSP TMS320 F28035的按键驱动程序


  • /************************************
  •     标题:key.h
  •     软件平台:DSP.com/forum.php?mod=forumdisplay&fid=58" target="_blank" class="relatedlink">CCS v5.2
  •     硬件平台:毕设控制板
  •     主频:60M

  •     author:小船
  •     data:2013-02-23
  • *************************************/
  • #ifndef KEY_H_
  • #define KEY_H_

  • #include "PeripheralHeaderIncludes.h"
  • #include <stdio.h>

  • #define delay_cheak 15000

  • #define KEY1     1
  • #define KEY2     2
  • #define KEY3     3
  • #define KEY4     4
  • #define noKEY    0

  • #define KEY1_on        GpioDataRegs.GPADAT.bit.GPIO19 == 0
  • #define KEY2_on        GpioDataRegs.GPADAT.bit.GPIO6 == 0
  • #define KEY3_on     GpioDataRegs.GPADAT.bit.GPIO12 == 0
  • #define KEY4_on        GpioDataRegs.GPADAT.bit.GPIO16 == 0
  • #define KEYs_on     (GpioDataRegs.GPADAT.all & 0x00091040) != 0x00091040

  • extern void (*key1_handle)();
  • extern void (*key2_handle)();
  • extern void (*key3_handle)();
  • extern void (*key4_handle)();

  • void KEY_init(void (*key1_dle)(), void (*key2_dle)(), void (*key3_handle)(), void (*key4_dle)());
  • char KEY_scanf_handle();

  • #endif /* KEY_H_ */

  • /************************************
  •     标题:key.c
  •     软件平台:CCS v5.2
  •     硬件平台:毕设控制板
  •     主频:60M

  •     author:小船
  •     data:2013-02-23
  • *************************************/
  • #include "key.h"

  • void (*key1_handle) () = NULL;
  • void (*key2_handle) () = NULL;
  • void (*key3_handle) () = NULL;
  • void (*key4_handle) () = NULL;

  • void KEY_init(void (*key1_dle)(), void (*key2_dle)(), void (*key3_dle)(), void (*key4_dle)())
  • {
  •     EALLOW;

  •     GpioCtrlRegs.GPAPUD.all &= (~0x00091040); //除能上拉电阻
  •     GpioCtrlRegs.GPADIR.all &= (~0x00091040);   //输入
  •     GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 0;  //GPIO19
  •     GpioCtrlRegs.GPAQSEL2.bit.GPIO19 = 2; // 6 samples

  •     GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 0;  //GPIO6
  •     GpioCtrlRegs.GPAQSEL1.bit.GPIO6 = 2; // 6 samples

  •     GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 0;  //GPIO12
  •     GpioCtrlRegs.GPAQSEL1.bit.GPIO12 = 2; // 6 samples

  •     GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 0;  //GPIO16
  •     GpioCtrlRegs.GPAQSEL2.bit.GPIO16 = 2; // 6 samples

  •     EDIS;

  •     GpioDataRegs.GPASET.all |= 0x00091040;

  •     key1_handle = key1_dle;
  •     key2_handle = key2_dle;
  •     key3_handle = key3_dle;
  •     key4_handle = key4_dle;
  • }

  • char KEY_scanf_handle()
  • {
  • char KEY_mun = 0;
  • if(KEYs_on)
  •   {
  •    DELAY_US(delay_cheak);
  •    if(KEYs_on)
  •    {
  •        if(KEY1_on)
  •        {
  •         (*key1_handle)();
  •         KEY_mun = KEY1;
  •        }
  •        if(KEY2_on)
  •        {
  •         (*key2_handle)();
  •         KEY_mun = KEY2;
  •        }
  •        if(KEY3_on)
  •        {
  •         (*key3_handle)();
  •         KEY_mun = KEY3;
  •        }
  •        if(KEY4_on)
  •        {
  •         (*key4_handle)();
  •         KEY_mun = KEY4;
  •        }
  •    }
  •   }
  • return KEY_mun;
  • }

复制代码

相关帖子

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

本版积分规则

455

主题

583

帖子

5

粉丝