日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]首先是gpio中斷,這一點(diǎn)和1768不同,1768使用的中斷時(shí)和eint3共用中斷通道,到了1788,專門為gpio開辟了中斷#ifndef __JOYPAD_H_#define __JOYPAD_H_#include "sys.h"#include "delay.h"#define JOYPAD_A 0X01#define JO

首先是gpio中斷,這一點(diǎn)和1768不同,1768使用的中斷時(shí)和eint3共用中斷通道,到了1788,專門為gpio開辟了中斷

#ifndef __JOYPAD_H_

#define __JOYPAD_H_

#include "sys.h"

#include "delay.h"

#define JOYPAD_A 0X01

#define JOYPAD_B 0X02

#define JOYPAD_C 0X03

#define JOYPAD_D 0X04

#define JOYPAD_ENTER 0X05

extern u8 joypadValue;

void Joypad_Scan_Init(void);

void Joypad_Exti_Init(void);

u8 Joypad_Get_Key(void);

#endif

#include "joypad.h"

u8 joypadValue=0;

void Joypad_Exti_Init(void)

{

//p4沒有中斷通道,所以只有key1和key2擁有中斷

LPC_SC->PCONP|=(1<<15);//打開時(shí)鐘

//選擇管腳模式,1788為每個(gè)管腳都設(shè)計(jì)了一個(gè)寄存器來選擇管腳模式

LPC_IOCON->P2_25=0x00;//選擇gpio功能,禁止遲滯 不反向 正常推挽

LPC_IOCON->P2_25|=(2<<3);//上拉

P2dir(25)=0; //輸入

LPC_GPIOINT->IO2IntEnF|=(1<<25);//使能IO口下降沿觸發(fā)

LPC_GPIOINT->IO2IntClr|=(1<<25);//清除io口中斷

LPC_IOCON->P2_26=0x00;//選擇gpio功能,禁止遲滯 不反向 正常推挽

LPC_IOCON->P2_26|=(2<<3);//上拉

P2dir(26)=0; //輸入

LPC_GPIOINT->IO2IntEnF|=(1<<26);//使能IO口下降沿觸發(fā)

LPC_GPIOINT->IO2IntClr|=(1<<26);//清除io口中斷

LPC_IOCON->P2_23=0x00;//選擇gpio功能,禁止遲滯 不反向 正常推挽

LPC_IOCON->P2_23|=(2<<3);//上拉

P2dir(23)=0; //輸入

LPC_GPIOINT->IO2IntEnF|=(1<<23);//使能IO口下降沿觸發(fā)

LPC_GPIOINT->IO2IntClr|=(1<<23);//清除io口中斷

LPC_IOCON->P2_19=0x00;//選擇gpio功能,禁止遲滯 不反向 正常推挽

LPC_IOCON->P2_19|=(2<<3);//上拉

P2dir(19)=0; //輸入

LPC_GPIOINT->IO2IntEnF|=(1<<19);//使能IO口下降沿觸發(fā)

LPC_GPIOINT->IO2IntClr|=(1<<19);//清除io口中斷

//P0.14 與usb2_connect沖突,所以使用usb2連接的時(shí)候不用p0.14

// LPC_IOCON->P0_14 = 0x00;//選擇gpio功能,禁止遲滯 不反向 正常推挽

// LPC_IOCON->P0_14 |= (2<<3);//上拉

// P0dir(14) = 0; //輸入

// LPC_GPIOINT->IO0IntEnF |= (1<<14);//使能IO口下降沿觸發(fā)

// LPC_GPIOINT->IO0IntClr |= (1<<14);//清除io口中斷

NVIC_ClearPendingIRQ(GPIO_IRQn);

NVIC_SetPriority(GPIO_IRQn,NVIC_EncodePriority(PriorityGroup2,GPIO_PreemptPriority,GPIO_SubPriority));

NVIC_EnableIRQ(GPIO_IRQn);

}

void Joypad_Scan_Init(void)

{

//p2.25 p2.26 p2.23 P2.19 P0.14

LPC_SC->PCONP|=(1<<15);//打開時(shí)鐘

//選擇管腳模式,1788為每個(gè)管腳都設(shè)計(jì)了一個(gè)寄存器來選擇管腳模式

LPC_IOCON->P2_25=0x00;//選擇gpio功能,禁止遲滯 不反向 正常推挽

LPC_IOCON->P2_25|=(2<<3);//上拉

P2dir(25)=0; //輸入

LPC_IOCON->P2_26=0x00;//選擇gpio功能,禁止遲滯 不反向 正常推挽

LPC_IOCON->P2_26|=(2<<3);//上拉

P2dir(26)=0; //輸入

LPC_IOCON->P2_23=0x00;//選擇gpio功能,禁止遲滯 不反向 正常推挽

LPC_IOCON->P2_23|=(2<<3);//上拉

P2dir(23)=0; //輸入

LPC_IOCON->P2_19=0x00;//選擇gpio功能,禁止遲滯 不反向 正常推挽

LPC_IOCON->P2_19|=(2<<3);//上拉

P2dir(19)=0; //輸入

// LPC_IOCON->P0_14 = 0x00;//選擇gpio功能,禁止遲滯 不反向 正常推挽

// LPC_IOCON->P0_14 |= (2<<3);//上拉

// P0dir(14) = 0; //輸入

}

u8 Joypad_Get_Key(void)

{

if(P2in(25)==0)

{

Delay_Ms(5);

if(P2in(25)==0)

{

joypadValue=JOYPAD_A;

}

}

if(P2in(26)==0)

{

Delay_Ms(5);

if(P2in(26)==0)

{

joypadValue=JOYPAD_B;

}

}

if(P2in(23)==0)

{

Delay_Ms(5);

if(P2in(23)==0)

{

joypadValue=JOYPAD_C;

}

}

if(P2in(19)==0)

{

Delay_Ms(5);

if(P2in(19)==0)

{

joypadValue=JOYPAD_D;

}

}

// if(P0in(14) == 0)

// {

// Delay_Ms(5);

// if(P0in(14) == 0)

// {

// joypadValue = JOYPAD_ENTER;

// }

// }

returnjoypadValue;

}

void GPIO_IRQHandler(void)

{

NVIC_ClearPendingIRQ(GPIO_IRQn);

// if((LPC_GPIOINT->IntStatus & (1<<0))) //p0中斷

// {

// if((LPC_GPIOINT->IO0IntStatF & (1<<14)))

// {

// //清除中斷

// LPC_GPIOINT->IO0IntClr |= (1<<14);

// joypadValue = JOYPAD_ENTER;

// }

// }

if((LPC_GPIOINT->IntStatus&(1<<2))) //p2中斷

{

if((LPC_GPIOINT->IO2IntStatF&(1<<25)))

{

//清除中斷

LPC_GPIOINT->IO2IntClr|=(1<<25);

joypadValue=JOYPAD_A;

}

if((LPC_GPIOINT->IO2IntStatF&(1<<26)))

{

//清除中斷

LPC_GPIOINT->IO2IntClr|=(1<<26);

joypadValue=JOYPAD_B;

}

if((LPC_GPIOINT->IO2IntStatF&(1<<23)))

{

//清除中斷

LPC_GPIOINT->IO2IntClr|=(1<<23);

joypadValue=JOYPAD_C;

}

if((LPC_GPIOINT->IO2IntStatF&(1<<19)))

{

//清除中斷

LPC_GPIOINT->IO2IntClr|=(1<<19);

joypadValue =

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉