Home > Study > C Language > ARM System Programming > [ex06] LED_DRIVER_LAB

[ex06] LED_DRIVER_LAB
Study Language

문제 설명


// led.c
#include "device_driver.h"

void LED_Init(void)
{
	/* 다음 코드는 수정하지 마시오 */
	Macro_Set_Bit(RCC->APB2ENR, 3);



}

void LED_Display(unsigned int num)
{


}

void LED_All_On(void)
{



}

void LED_All_Off(void)
{


}

정답 코드


#include "device_driver.h"

void LED_Init(void)
{
	Macro_Set_Bit(RCC->APB2ENR, 3);
	Macro_Write_Block(GPIOB->CRH, 0xff, 0x66, 0);
	Macro_Set_Area(GPIOB->ODR, 0x3, 8);
}

void LED_Display(unsigned int num)
{
	Macro_Write_Block(GPIOB->ODR, 0x3, (~num & 3), 8);
}

void LED_All_On(void)
{
	Macro_Clear_Area(GPIOB->ODR, 0x3, 8);
}

void LED_All_Off(void)
{
	Macro_Set_Area(GPIOB->ODR, 0x3, 8);
}

메모


printf 내부의 \n 습관화 필요