Home > Study > C Language > ARM System Programming > [ex03] BIT_OP_LAB #1 비트 연산에 의한 LED ON

[ex03] BIT_OP_LAB #1 비트 연산에 의한 LED ON
Study Language

문제 설명


// main.c #1
void Main(void)
{
	/* 이 부분은 임의로 바꾸지 마시오 */
	RCC->APB2ENR |= (1<<3);

	/* 비트 연산을 이용하여 LED0을 ON, LED1을 OFF로 하는 코드를 설계하시오 */




}

정답 코드


#if 1

void Main(void)
{
	RCC->APB2ENR |= (1<<3);

	GPIOB->CRH &=~((1<<7)|(3<<3)|(1<<0));
	GPIOB->CRH |= (3<<5)|(3<<1);

	GPIOB->ODR &=~(1<<8);
	GPIOB->ODR |= (1<<9);
}

#endif

#if 0

void Main(void)
{
	RCC->APB2ENR |= (1<<3);

	GPIOB->CRH = (GPIOB->CRH & ~((1<<7)|(3<<3)|(1<<0)))|((3<<5)|(3<<1));
	GPIOB->ODR = (GPIOB->ODR & ~(0x1<<8)) | (1<<9);
}

#endif

#if 0

void Main(void)
{
	RCC->APB2ENR |= (1<<3);

	GPIOB->CRH = (GPIOB->CRH & ~(0xff<<0)) | (0x66<<0);
	GPIOB->ODR = (GPIOB->ODR & ~(0x3<<8)) | (0x1<<8);
}

#endif

메모


printf 내부의 \n 습관화 필요