xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 988KB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-11
  • 語(yǔ)言: 其他
  • 標(biāo)簽: stm32??PS2??

資源簡(jiǎn)介

PS2游戲手柄資料。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

資源截圖

代碼片段和文件信息

#include?“ps2.h“
/*********************************************************
Copyright?(C)?2015-2025?LHRobot.
www.peihua13.com
File:PS2驅(qū)動(dòng)程序
Author:hua13???Version:1.0?????Data:2017/11/01
Description:?PS2驅(qū)動(dòng)程序
**********************************************************/
u16?Handkey;
u8?Comd[2]={0x010x42}; //開(kāi)始命令。請(qǐng)求數(shù)據(jù)
u8?Data[9]={0x000x000x000x000x000x000x000x000x00};?//數(shù)據(jù)存儲(chǔ)數(shù)組
u16?MASK[]={
????PSB_SELECT
????PSB_L3
????PSB_R3?
????PSB_START
????PSB_PAD_UP
????PSB_PAD_RIGHT
????PSB_PAD_DOWN
????PSB_PAD_LEFT
????PSB_L2
????PSB_R2
????PSB_L1
????PSB_R1?
????PSB_GREEN
????PSB_RED
????PSB_BLUE
????PSB_PINK
}; //按鍵值與按鍵說(shuō)明
/*************************************************************
*******函數(shù)功能:手柄接口初始化?
*******輸入:??DI->PB12?
*******輸出:??DO->PB13????CS->PB14??CLK->PB15
************************************************************/
void?PS2_Init(void)
{
????//輸入??DI->PB12
RCC->APB2ENR|=1<<3;?????//使能PORTB時(shí)鐘
GPIOB->CRH&=0XFFF0FFFF;//PB12設(shè)置成輸入 默認(rèn)下拉??
GPIOB->CRH|=0X00080000;???

????//??DO->PB13????CS->PB14??CLK->PB15
RCC->APB2ENR|=1<<3;????//使能PORTB時(shí)鐘?? ??? ?? ?
GPIOB->CRH&=0X000FFFFF;?
GPIOB->CRH|=0X33300000;//PB13、PB14、PB15?推挽輸出??? ? ??
}

//向手柄發(fā)送命令
void?PS2_Cmd(u8?CMD)
{
volatile?u16?ref=0x01;
Data[1]?=?0;
for(ref=0x01;ref<0x0100;ref<<=1)
{
if(ref&CMD)
{
DO_H;???????????????????//輸出以為控制位
}
else?DO_L;

CLK_H;????????????????????????//時(shí)鐘拉高
delay_us(50);
CLK_L;
delay_us(50);
CLK_H;
if(DI)
Data[1]?=?ref?|?Data[1];
}
}

//判斷是否為紅燈模式
//返回值;0,紅燈模式
// ??其他,其他模式
u8?PS2_RedLight(void)
{
CS_L;
PS2_Cmd(Comd[0]);??//開(kāi)始命令
PS2_Cmd(Comd[1]);??//請(qǐng)求數(shù)據(jù)
CS_H;
if(?Data[1]?==?0X73)???return?0?;
else?return?1;
}

//讀取手柄數(shù)據(jù)
void?PS2_ReadData(void)
{
volatile?u8?byte=0;
volatile?u16?ref=0x01;

CS_L;

PS2_Cmd(Comd[0]);??//開(kāi)始命令
PS2_Cmd(Comd[1]);??//請(qǐng)求數(shù)據(jù)

for(byte=2;byte<9;byte++)??????????//開(kāi)始接受數(shù)據(jù)
{
for(ref=0x01;ref<0x100;ref<<=1)
{
CLK_H;
CLK_L;
delay_us(50);
CLK_H;
??????if(DI)
??????Data[byte]?=?ref??|??Data[byte];
}
????????delay_us(50);
}
CS_H;
}

//對(duì)讀出來(lái)的PS2的數(shù)據(jù)進(jìn)行處理????只處理了按鍵部分?????????默認(rèn)數(shù)據(jù)是紅燈模式??只有一個(gè)按鍵按下時(shí)
//按下為0,?未按下為1
u8?PS2_DataKey()
{
u8?index;

PS2_ClearData();
PS2_ReadData();

Handkey=(Data[4]<<8)|Data[3];?????//這是16個(gè)按鍵??按下為0,?未按下為1
for(index=0;index<16;index++)
{ ????
if(?(Handkey&(1<<(MASK[index]-1)?)?)==0)
return?index+1;
}
return?0;??????????//沒(méi)有任何按鍵按下
}

//得到一個(gè)搖桿的模擬量 ?范圍0~256
u8?PS2_AnologData(u8?button)
{
return?Data[button];
}

//清除數(shù)據(jù)緩沖區(qū)
void?PS2_ClearData()
{
u8?a;
for(a=0;a<9;a++)
Data[a]=0x00;
}

評(píng)論

共有 條評(píng)論