/*程序功能:按下KEY2键四个LED开始闪烁,蜂鸣器叫*/
#include <stdio.h>
#include "NUC1xx.h"
#include "DrvGPIO.h"
#include "DrvSYS.h"
void delay_ms(uint32_t x) //延时函数
{
uint32_t i,j;
for(i=900;i>0;i--)
for(j=x;j>0;j--);
}
/*外部中断0回调函数 */
void EINT0CALLBACK( void )
{
DrvGPIO_SetBit( E_GPB, 10);
}
int main( void )
{
DrvGPIO_EnableInt( E_GPB, 14, E_IO_FALLING, E_MODE_EDGE); //设置端口GPB14为外部中断模式
DrvGPIO_EnableDebounce(E_GPB, 14);
DrvGPIO_InitFunction( E_FUNC_EXTINT0); //指定外部中断0引脚功能
DrvGPIO_Open(E_GPB, 10, E_IO_OUTPUT); //设定端口GPB10为输出模式
DrvGPIO_ClrBit(E_GPB, 10); //开始时关闭蜂鸣器
DrvGPIO_EnableEINT0( E_IO_FALLING, E_MODE_EDGE, EINT0CALLBACK);
while(1)
{
if(DrvGPIO_GetBit( E_GPB, 14)==0)
{
DrvGPIO_SetPortBits(E_GPA,0XFFC3); // LED全亮
delay_ms(4000) ;
DrvGPIO_SetPortBits(E_GPA,0XFFFF) ; // LED全灭
delay_ms(1000) ;
DrvGPIO_SetBit(E_GPB,10) ; //蜂鸣器响
delay_ms(3000); //关掉蜂鸣器
DrvGPIO_ClrBit(E_GPB, 10);
delay_ms(3000) ;
DrvGPIO_SetPortBits(E_GPA,0XFFC3); // LED全亮
delay_ms(4000) ;
DrvGPIO_SetPortBits(E_GPA,0XFFFF) ; // LED全灭
}
}
} |