main.c

来自「芯片为S3C2410,GPF4-7 配置为输出口,用于LED显示。GPF0/2和」· C语言 代码 · 共 53 行

C
53
字号
/* main.c */

/*
功能:当K1-K4某个键按下时,LED1-LED4中相应的灯点亮
*/

/* F Port Register*/
#define GPFCON (*(volatile unsigned *)0x56000050)
#define GPFDAT (*(volatile unsigned *)0x56000054)
#define GPFUP  (*(volatile unsigned *)0x56000058)

/* G Port Register*/
#define GPGCON (*(volatile unsigned *)0x56000060)
#define GPGDAT (*(volatile unsigned *)0x56000064)
#define GPGUP  (*(volatile unsigned *)0x56000068)

/*
LED1-4对应GPF4-7
*/
#define GPF4_OUT (1<<(4*2))
#define GPF5_OUT (1<<(5*2))
#define GPF6_OUT (1<<(6*2))
#define GPF7_OUT (1<<(7*2))

/*
K1对应GPF0	K2对应GPF2
K3对应GPG3	K4对应GPG11
*/
#define GPF0_IN ~(3<<(0*2))
#define GPF2_IN ~(3<<(2*2))
#define GPG3_IN ~(3<<(3*2))
#define GPG11_IN ~(3<<(11*2))

int Main(void)
{
		int tmp = 0;
		/* Configure I/O Port */
		
		/* GPF4-7 配置为输出口,用于LED显示。GPF0/2和GPG3/11 配置为输入口,
		根据从引脚读出的数据判断是哪个小键盘按下,并控制相应LED灯的显示 */ 
		GPFCON = (GPFCON | GPF4_OUT | GPF5_OUT | GPF6_OUT | GPF7_OUT) & GPF0_IN & GPF2_IN ;/* 0x5500*/
		GPGCON &= GPG3_IN & GPG11_IN ; /* 0xE73F 0010 */
//		GPFDAT = 0xff; /* 8口 */
//		GPGDAT = 0xffff; /* 16口 */

		while(1)
		{
			    tmp = GPFDAT ;
				GPFDAT = (tmp & 0x01)<<4 | (tmp & 0x04)<<3 \
					| (GPGDAT & 0x0008)<<3 | (GPGDAT & 0x0800)>>4 ;
		}
		return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?