📄 joystick_drv.c
字号:
//====================================================================================
//File Name: JoyStick_Drv.c
//Description: Joy stick driver
//Update: 2007.03.17 V1.0 by wangtao <wangtao@sunnorth.com.cn>
//====================================================================================
#include "JoyStick_Drv.h"
//=============================================================
//Return Value: void JoyStick_Init(void);
//Description: Initialize JoyStick
//Arguments: None
//Return Value: None
//=============================================================
void JoyStick_Init(void)
{
*P_GPIO_CLK_CONF = C_GPIO_CLK_EN|C_GPIO_RST_DIS;
*P_JOYS_GPIO_PULLUP &= ~((0x01<<(JOYS_DAT0_BIT+JOYS_PULLUP_OFFSET))+(0x01<<(JOYS_DAT1_BIT+JOYS_PULLUP_OFFSET)));
// DAT0,DAT1 pull up
*P_JOYS_GPIO_PULLDOWN &= ~((0x01<<(JOYS_DAT0_BIT+JOYS_PULLDOWN_OFFSET))+(0x01<<(JOYS_DAT1_BIT+JOYS_PULLDOWN_OFFSET)));
// DAT0,DAT1 no pull down
*P_JOYS_GPIO_OE &= ~((0x01<<(JOYS_DAT0_BIT+JOYS_OE_OFFSET))+(0x01<<(JOYS_DAT1_BIT+JOYS_OE_OFFSET)));
// DAT0,DAT1 input
JOYS_LOAD_Clr(); // Initialize LOAD as low level
JOYS_CLK_Set(); // Initialize CLK as high level
*P_JOYS_GPIO_OE |= (0x01<<(JOYS_CLK_BIT+JOYS_OE_OFFSET))+(0x01<<(JOYS_LOAD_BIT+JOYS_OE_OFFSET));
// CLK,LOAD output
}
//=============================================================
//Return Value: void JoyStick_Get(unsigned short *KeyCode0, unsigned short *KeyCode1);
//Description: Initialize JoyStick
//Arguments: KeyCode0: Address of stick0 keys
// KeyCode1: Address of stick1 keys
//Return Value: None
//=============================================================
void JoyStick_Get(unsigned short *KeyCode0, unsigned short *KeyCode1)
{
short i, j;
unsigned short TempCode0, TempCode1;
TempCode0 = 0x0000;
TempCode1 = 0x0000;
JOYS_LOAD_Set();
for(j=0; j<5; j++);
JOYS_LOAD_Clr();
for(i=0; i<8; i++)
{
JOYS_CLK_Clr();
TempCode0 <<= 1;
TempCode1 <<= 1;
TempCode0 |= !JOYS_DAT0_Get();
TempCode1 |= !JOYS_DAT1_Get();
for(j=0; j<5; j++);
JOYS_CLK_Set();
}
*KeyCode0 = TempCode0;
*KeyCode1 = TempCode1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -