중앙대 마이크로프로세서 응용회로설계실습 4주차 LED
- 최초 등록일
- 2022.07.04
- 최종 저작일
- 2022.04
- 7페이지/ 한컴오피스
- 가격 1,000원
목차
1. led 함수들(led_down_shift, led_up_shift)에서 shift연산을 하는 이유를 설명하시오.
2. P02_LED 폴더의 소스파일을 활용
본문내용
1. led 함수들(led_down_shift, led_up_shift)에서 shift연산을 하는 이유를 설명하시오.
led의 주소를 init_led를 통해 받고 변수가 가르키는 포인터를 register 값을 입력해서 제어한다.
레지스터가 바뀌는것에 따라, led가 입력해준 방식대로 register가 변화하게 된다.
포인터 led에 어떤 값을 넣어주기 위해 shift 연산을 사용한다.
led의 레지스터에 0을 넣으면 불이 켜지고 1을 넣으면 불이 꺼지게되는 원리를 이용하여
4비트 long이란 변수를 통해서 0xff 16진수로 1111_1111에 해당하는 이 변수를 left shift와 right shift를 통해 구현한다. for 문이라 i가 16까지 증가하는데 i가 1부터 16까지 올라가면서 1111_1111이란 숫자를 left shift하여 led를 순서대로 켜주게 되고 나서 다시 right shift를 이용하여 1111_1111로 돌아가게 되고 이 과정에서 MSB부터 led가 순서대로 꺼지게 된다.
up에 경우 0xff00 이라 뒤쪽까지 short만큼만 제어되기떄문에 8비트만 제어하는거라 ff는 출력이 되는 변수가 아니고 뒤에있는 00이 출력이된다. i가1일때는 한번 left shift라 MSB 1개만 켜지게 된다.
예를 들면 i가 2일때, 2번 left shift를 통해 MSB와 그 다음 led가 켜지게 되고 반복적으로 16번을 시행하게 되면 ff앞에는 0이란 숫자가 들어있어서 3개까지 켜지게 되고 모두 켜진 다음, msb만 꺼진 led, 그 다음엔 2개가 꺼지고.. 끝까지 모두 꺼질때까지 수행된다.
참고 자료
없음