아두이노 칩셋

다니엘·2022년 5월 24일
0

실습 과제명 : 아두이노 칩셋을 이용한 스위치로 LED 끄고 켜기

수행기간 : 2022. 05. 24

참가인원 : 1명

담당업무 : 조합 논리회로, 레지스터 이용

수행목표 :

PD0 - PD7 아웃풋으로 놓고

PG0-PG3 인풋으로 저장

1번 PG0 을 눌렀을때 LED 조명 끄기 후 else 문으로 GPIOD를 ODR 해줘서 0x8,에 있는값 외에는 모두 0으로 만들고 1000 에서 왼쪽으로 두칸 이동 된점 LED 점등

0000 1000 ->0100 0000
회로도를 참조해야 한다.


아두이노 칩셋 LED 스위치 회로도

int A;

while (1)

{

GPIO_PinState Input_A = HAL_GPIO_ReadPin(GPIOG, GPIO_PIN_0);

GPIO_PinState Input_B = HAL_GPIO_ReadPin(GPIOG, GPIO_PIN_1);

GPIO_PinState Input_C = HAL_GPIO_ReadPin(GPIOG, GPIO_PIN_2);

GPIO_PinState Input_D = HAL_GPIO_ReadPin(GPIOG, GPIO_PIN_3);

if(HAL_GPIO_ReadPin(GPIOG, GPIO_PIN_0 == 1))

{

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_0, 1);

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_1, 1);

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, 1);

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_3, 1);

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_4, 1);

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_5, 1);

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_6, 1);

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_7, 1);

}

else {

// ((GPIOD -> ODR) <<2) = 0x8;

GPIOD -> ODR = 0x8<<1;

}

0개의 댓글