如题:有code有真相!!!- /*********************************************************************************************
- * 菜农新唐M0助学交流(Q群:12047788)
- * 模块名称:按键中断及蜂鸣器操作
- * 创建时间:2011-10-18
- * 所属公司 : 火星菜农集团
- * 文件名称: Main.c
- * 作者 : 周炳权
- * 功能描述: 按KEY1进入中断驱动蜂鸣器;按KEY2进入流水灯,关蜂鸣器。
- *----------------------------------------------------------------
- 修改记录:
- 修改日期:
- 修改人:
- **********************************************************************************************************/
- #include <stdio.h>
- #include "NUC1xx.h"
- #include "DrvGPIO.h"
- #include "DrvSYS.h"
- /********************************************************************
- *@作者:周炳权
- *@功能:外部中断0回调函数
- *
- *@输入: NONE
- *@输出: NONE
- ********************************************************************/
- void EINT0CALLBACK( void )
- {
- DrvGPIO_SetBit( E_GPB, 10);
- }
- int main( void )
- {
- UNLOCKREG(x); /*芯片注册解锁*/
- SYSCLK->PWRCON.XTL12M_EN =1; /*设定12M外部晶振*/
- LOCKREG(x); /*芯片上锁*/
- DrvSYS_Delay(5000); /*等待时钟就绪*/
- DrvGPIO_Open( E_GPA, 2, E_IO_OUTPUT);/*设置端口GPA2为输出模式*/
- DrvGPIO_Open( E_GPA, 3, E_IO_OUTPUT);/*设置端口GPA3为输出模式*/
- DrvGPIO_Open( E_GPA, 4, E_IO_OUTPUT);/*设置端口GPA4为输出模式*/
- DrvGPIO_Open( E_GPA, 5, E_IO_OUTPUT);/*设置端口GPA5为输出模式*/
- DrvGPIO_Open( E_GPB, 15, E_IO_INPUT);/*设置端口GPB15为输入模式*/
- DrvGPIO_Open( E_GPB, 14, E_IO_INPUT);/*设置端口GPB14为输入模式*/
- DrvGPIO_Open( E_GPB, 10, E_IO_OUTPUT);/*设置端口GPB10为输出模式*/
- DrvGPIO_ClrBit( E_GPB, 10); /*禁止蜂鸣器工作*/
- DrvGPIO_EnableInt( E_GPB, 14, E_IO_FALLING, E_MODE_EDGE); /*设置端口GPB14为外部中断模式*/
- DrvGPIO_SetDebounceTime(10, E_DBCLKSRC_10K);
- DrvGPIO_EnableDebounce(E_GPB, 14);
- DrvGPIO_InitFunction( E_FUNC_EXTINT0); /*指定外部中断0引脚功能*/
- DrvGPIO_EnableEINT0( E_IO_FALLING, E_MODE_EDGE, EINT0CALLBACK);
- while(1)
- {
- if(DrvGPIO_GetBit( E_GPB, 15) == 0)
- {
- DrvGPIO_ClrBit( E_GPA, 2);
- DrvSYS_Delay(50000);
- DrvGPIO_SetBit( E_GPA, 2);
- DrvSYS_Delay(50000);
- DrvGPIO_ClrBit( E_GPA, 3);
- DrvSYS_Delay(50000);
- DrvGPIO_SetBit( E_GPA, 3);
- DrvSYS_Delay(50000);
- DrvGPIO_ClrBit( E_GPA, 4);
- DrvSYS_Delay(50000);
- DrvGPIO_SetBit( E_GPA, 4);
- DrvSYS_Delay(50000);
- DrvGPIO_ClrBit( E_GPA, 5);
- DrvSYS_Delay(50000);
- DrvGPIO_SetBit( E_GPA, 5);
- DrvSYS_Delay(50000);
- DrvGPIO_ClrBit( E_GPB, 10);
- }
- /* else if(DrvGPIO_GetBit( E_GPB, 14) == 0)
- {
- DrvGPIO_SetBit( E_GPB, 10);
- DrvSYS_Delay(500000);
- DrvGPIO_ClrBit( E_GPB, 10);
- DrvSYS_Delay(50000);
- }
- */
- }
- }
|