void Key2IntHandler(void)
{
GPIOIntClear(GPIO_PORTF_BASE,GPIO_INT_PIN_4);
if(GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_0))
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0<<0);
else
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0);
{
GPIOIntClear(GPIO_PORTF_BASE,GPIO_INT_PIN_4);
if(GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_0))
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0<<0);
else
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0);
}
void Key4IntHandler(void)
{
GPIOIntClear(GPIO_PORTA_BASE,GPIO_INT_PIN_2);
if(GPIOPinRead(GPIO_PORTA_BASE,GPIO_PIN_4))
GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,0<<0);
else
GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,1<<0);
/*GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,
(0x10^GPIOPinRead(GPIO_PORTA_BASE,GPIO_PIN_4)));*/
}
void Key4IntHandler(void)
{
GPIOIntClear(GPIO_PORTA_BASE,GPIO_INT_PIN_2);
if(GPIOPinRead(GPIO_PORTA_BASE,GPIO_PIN_4))
GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,0<<0);
else
GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,1<<0);
/*GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,
(0x10^GPIOPinRead(GPIO_PORTA_BASE,GPIO_PIN_4)));*/
}
main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);
//设置系统时钟50MHZ;
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
//使能外设
HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTF_BASE + GPIO_O_CR) |= 0x01;
HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = 0;
//解锁PF0
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_0);
GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_4);//D2,D3
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0);
GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,0);
//配置并初始化
GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4);
GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_2);
GPIOIntTypeSet(GPIO_PORTF_BASE,GPIO_PIN_4,GPIO_FALLING_EDGE);
GPIOIntTypeSet(GPIO_PORTA_BASE,GPIO_PIN_2,GPIO_FALLING_EDGE);
GPIOIntEnable(GPIO_PORTF_BASE,GPIO_INT_PIN_4);
GPIOIntEnable(GPIO_PORTA_BASE,GPIO_INT_PIN_2);
IntMasterEnable();
IntPrioritySet(INT_GPIOA,1);
IntPrioritySet(INT_GPIOF,0);
GPIOIntRegister(GPIO_PORTF_BASE, Key2IntHandler);
GPIOIntRegister(GPIO_PORTA_BASE, Key4IntHandler);
while(1)
{
{
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);
//设置系统时钟50MHZ;
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
//使能外设
HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTF_BASE + GPIO_O_CR) |= 0x01;
HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = 0;
//解锁PF0
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_0);
GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_4);//D2,D3
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0);
GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,0);
//配置并初始化
GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4);
GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_2);
GPIOIntTypeSet(GPIO_PORTF_BASE,GPIO_PIN_4,GPIO_FALLING_EDGE);
GPIOIntTypeSet(GPIO_PORTA_BASE,GPIO_PIN_2,GPIO_FALLING_EDGE);
GPIOIntEnable(GPIO_PORTF_BASE,GPIO_INT_PIN_4);
GPIOIntEnable(GPIO_PORTA_BASE,GPIO_INT_PIN_2);
IntMasterEnable();
IntPrioritySet(INT_GPIOA,1);
IntPrioritySet(INT_GPIOF,0);
GPIOIntRegister(GPIO_PORTF_BASE, Key2IntHandler);
GPIOIntRegister(GPIO_PORTA_BASE, Key4IntHandler);
while(1)
{
}
}
}