● 브레드 보드에 LED 10개 장착됨
●
toy_system 커맨드라인에서 ‘n’ 입력 시 좌측 4개 LED가
ON/OFF를 반복한다.
– ‘n exit’ 누르면 실행을 종료한다
명령에 테이블에 n 커맨드 추가
n커맨드 입력 => toy_simple_io function 호출
=> 277
insmod시 /dev/toy_simple_io_driver node가 생김. dev를 통해서 컨트롤.
2번째 arg가 exit이면 버퍼에 숫자 2를 write
n 입력시 exit이 아니기 때문에 else로 , buffer에 1
LED 8개 = GPIO
좌 4 우 4
0 : Wait , default
1 : Wake up interruptable => wait queue를 깨우는 코드,
2 : next : 다음동작으로 넘어가기 위해 exit함
user app에서 1,2를 통해 wake up 하고 플래그 값을 설정하도록 만듦
● 오른쪽 LED도 같은 방법으로 구현해 본다.
● 왼쪽 오른쪽 LED를 ‘n’을 누를 때마다 번갈아 구동해 본다.
● usleep_range() 함수를 사용하여 시간을 조절하여 저절로
왼쪽 LED, 오른쪽 LED가 번갈아가며 켜지는 깜빡이를
만들어 본다.
● 입력 스위치(INPUT GPIO 16)을 이용
● 포트 값이 1이면 왼쪽 LED를 ON, 오른쪽 LED는 OFF
● 포트 값이 0 이면 반대
● 입력 스위치가 떼는 순간에 LED 불이 바뀌도록 한다.
● 스위치를 떼면 왼쪽 LED ON, 오른쪽 LED OFF, 다시 한번
스위치를 떼면 왼쪽 LED OFF, 오른쪽 LED ON 하는
프로그램을 작성한다.
● 스위치 종류의 입력 장치는 채터링 현상을 유발한다.
채터링 현상을 없애는 방법을 연구하자.
● 간단한 방법은 입력을 한번 읽어들이고 일정 시간 후 한번
더 읽어서 그 값이 이전 값과 같다면 인정하는 방법이다.
사진출처 : 수업 내용