<초음파 흐름>
-초음파의 선연결:
에코 아웃풋: PIN 6번
트리거 인풋: PIN 97
1) 트리거 신호를 PIN97에 일정시간 준다
2) 초음파 센서에서 알아서 트리거 신호가 들어오면 8번의 초음파를 쏜다
3) 8개의 초음파를 다 쏘자마자 상승하면 타이머 인터럽트가 걸려서 시간을 잰다
4) 8개의 초음파가 다 돌아오면 하강엣지가 발생하고 타이머가 카운트 한 값을 계산하는 인터럽트가 걸린다
<초음파 센서 회로 연결도>
<인터럽트가 걸리는 순간>
<소스 분석>
-트리거 인풋 핀인 PIN97 은 PORTA의 구역이다. TRG_Init 에서 PORTA를 아웃풋으로 셋팅하고 핀을 low로 셋팅한다.
-타이밍도를 보면 트리거 신호를 일정시간 보낸다. TRG_Pulse 함수가 소스로 나타낸 것이다.
-트리거 신호를 주고 8개의 초음파가 나가고 Ehco 핀이 상승 될 때까지 와일문으로 기다린다.
-타이머 카운트 방식은 오버플로우로 한다
-글로벌 인터럽트 sei 를 적으면 모든 인터럽트가 허용이 된다. 에코 상승했을 때 인터럽트가 걸리도록 설정해 놓았기 때문에 아까 와일문을 빠져나왔기 때문에 sei를 허용하면 상승엣지에 인터럽트가 걸리게 된다.
-타이머가 카운트 되고 하강엣지가 되었을 때
vector_5 인터럽트가 나와서 카운트 한 값(uiTic)을 uiDist에 넣는다.
-다시 UTRA_Run 함수로 오면 벡터 5함수에서 uiState가 0이 되었기 때문에 와일문을 빠져나오고,
다시 타이머와 에코함수(하강엣지에 인터럽트)가 초기화 된다.
-3자리를 하나씩 쪼개서 계산한 값을 LCD에 출력하게 된다.
'코스웨어 > 13년 스마트컨트롤러' 카테고리의 다른 글
6월 18일 복습 (서버와 클라이언트의 1:1 양방향 통신) (2) | 2013.06.19 |
---|---|
Double linked list 참조사이트 (3) | 2013.06.17 |
PC방 변태들... (11) | 2013.06.15 |
VMware workstation9 시리얼키입니다 (3) | 2013.06.12 |
[AVR 보고서용 main소스입니다] by. 남경 (0) | 2013.06.11 |
뉴스 기사보다가 정말 획기적인 기사가 떠서.. (3) | 2013.06.10 |
6월 10일 정리 - 문예진 (2) | 2013.06.10 |
AVR(gcc) 인터럽트 핸들러 등록 (0) | 2013.06.10 |