一、记录以下代码
准备电子设计大赛,浅浅的学习了MSP432的板载键盘模块模块,记录如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
#ifndef _KEY_H_ #define _KEY_H_
#include "headfile.h"
#define KEY_LEFT_PORT GPIO_PORT_P1 #define KEY_LEFT_PIN GPIO_PIN1 #define KEY_LEFT GPIO_getInputPinValue(KEY_LEFT_PORT,KEY_LEFT_PIN) #define KEY_LEFT_PRESS 1
#define KEY_RIGHT_PORT GPIO_PORT_P1 #define KEY_RIGHT_PIN GPIO_PIN4 #define KEY_RIGHT GPIO_getInputPinValue(KEY_RIGHT_PORT,KEY_RIGHT_PIN) #define KEY_RIGHT_PRESS 2
void Key_Init(void); void Key_Int_Init(void); uint8 Key_Scan(void); void Key_Test(void);
#endif
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
#include "key.h"
void Key_Init(void) { GPIO_setAsInputPinWithPullUpResistor(KEY_LEFT_PORT,KEY_LEFT_PIN); GPIO_setAsInputPinWithPullUpResistor(KEY_RIGHT_PORT,KEY_RIGHT_PIN); }
void Key_Int_Init(void) { GPIO_setAsInputPinWithPullUpResistor(KEY_LEFT_PORT,KEY_LEFT_PIN); GPIO_clearInterruptFlag(KEY_LEFT_PORT, KEY_LEFT_PIN); GPIO_enableInterrupt(KEY_LEFT_PORT, KEY_LEFT_PIN); Interrupt_enableInterrupt(INT_PORT1); SysCtl_enableSRAMBankRetention(SYSCTL_SRAM_BANK1); Interrupt_enableMaster(); }
uint8 Key_Scan(void) { if(KEY_LEFT == 0) { delay_ms(5); if(KEY_LEFT == 0) return KEY_LEFT_PRESS; } else if(KEY_RIGHT == 0) { delay_ms(5); if(KEY_RIGHT == 0) return KEY_RIGHT_PRESS; } return 0; }
void Key_Test(void) { if(Key_Scan() == KEY_LEFT_PRESS) { LED_ON; } if(Key_Scan() == KEY_RIGHT_PRESS) { LED_OFF; } }
|