Home > Study > C Language > ARM System Programming > [ex07] KEY_IN_LAB #1 Key 인식

[ex07] KEY_IN_LAB #1 Key 인식
Study Language

문제 설명


// main.c #1
void Main(void)
{
	Sys_Init();
	Uart_Printf("KEY Input Test #1\n");

	// KEY[1:0], GPB[7:6]을 GPIO 입력으로 선언



	for(;;)
	{
		// KEY0이 눌렸으면 LED0를 ON, 안 눌렸으면 OFF



		// KEY1이 눌렸으면 LED1를 ON, 안 눌렸으면 OFF



	}
}

정답 코드


/* Key 인식 #1 */

#if 1

void Main(void)
{
	int value = 0;

	Sys_Init();
	Uart_Printf("KEY Input Test #1\n");


	Macro_Write_Block(GPIOB->CRL, 0xff, 0x44, 24);

	for(;;)
	{
		if(Macro_Check_Bit_Clear(GPIOB->IDR, 6)) Macro_Set_Bit(value, 0);
		else Macro_Clear_Bit(value, 0);

		if(Macro_Check_Bit_Clear(GPIOB->IDR, 7)) Macro_Set_Bit(value, 1);
		else Macro_Clear_Bit(value, 1);

		LED_Display(value);
	}
}

#endif

/* Extract Macro를 이용한 Key 인식 #2 */

#if 0

void Main(void)
{
	Sys_Init();
	Uart_Printf("KEY Input Test #2\n");

	Macro_Write_Block(GPIOB->CRL, 0xff, 0x44, 24);

	for(;;)
	{
		Macro_Write_Block(GPIOB->ODR,0x3,Macro_Extract_Area(GPIOB->IDR,0x3,6),8);
	}
}

#endif

메모


printf 내부의 \n 습관화 필요