📄 main.c
字号:
/****************************************Copyright (c)**************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.zyinside.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name: main.c
** Last modified Date: 2006-09-22
** Last Version: v1.0
** Description: MagicARM270实验箱的基础实验---GPIO输入实验。
** 使用GPIO输入模式对GP0口进行扫描,对蜂鸣器控制。
**------------------------------------------------------------------------------------------------------
** Created By: 黄绍斌
** Created date: 2006-09-22
** Version: v1.0
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
********************************************************************************************************/
#include "config.h"
// 定义蜂鸣器控制口
#define BEEP (1<<11) /* GP11 */
// 定义独立按键KEY1的输入口
#define KEY_CON (1<<0) /* GP0 */
/*********************************************************************************************************
** Function name: DelayNS
** Descriptions: 长软件延时。
** 延时时间与系统时钟有关。
** Input: dly 延时参数,值越大,延时越久
** Output: 无
** Created by: 黄绍斌
** Created Date: 2005-12-31
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void DelayNS(uint32 dly)
{
uint32 i;
for(; dly>0; dly--)
for(i=0; i<50000; i++);
}
/*********************************************************************************************************
** Function name: main
** Descriptions: 不断地读取GP0口的值,并输出控制蜂鸣器。
** Input: 无
** Output: 系统返回值0
** Created by: 黄绍斌
** Created Date: 2005-12-31
**-------------------------------------------------------------------------------------------------------
** Modified by: 黄绍斌
** Modified Date: 2006-09-22
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
int main(void)
{
// 初始化I/O
GPDR0 = GPDR0 | BEEP;
GPDR0 = GPDR0 & (~KEY_CON);
GAFR0_L = GAFR0_L & ( ~(0x03<<22) );
GAFR0_L = GAFR0_L & ( ~(0x03<<0) );
while(1)
{
if(GPLR0 & KEY_CON) // 读取并判断GP0是否为高电平
{
GPSR0 = BEEP; // GP0为高电平,则设置GP11=1
}
else
{
GPCR0 = BEEP; // GP0为低电平,则设置GP11=0
}
DelayNS(1);
}
return(0);
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -