qwe890asd 发表于 2017-10-14 11:35

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

关于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;

[*]}

复制代码
页: [1]
查看完整版本: 关于DSP TMS320 F28035的按键驱动程序