문제 설명
// 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 습관화 필요