초음파를 이용해서 거리를 알아봅시다.
2-2번은 코딩잘못함 USonic_init에서 설정함
1번 LCD_Init()
LCD에다가 거리를 찍을꺼니까요.
2-1 USonic_init();
초음파 설정하는 곳으로 들어가보면
↓
USonic_init_pin();
안으로들어갑니다.
↓
0011: TRI_DDR은 DDRA이죠? DDRA를 출력으로 바꿔줍시다.
0012: TRI_PORT는 PORTA이죠? 아직 PORTA는 잠궈둡니다.
0013: DDRE 의 에코핀만 입력으로 바꿔줍시다.
0017: 분주비8로 세팅 했습니다.
0018: 118클럭직후
0019: 타이머 인터럽트를 요청합니다.
왜 118클럭이후인가요?
↓
타이머 인터럽를 요청하면 함수 벡터 15가 발동됩니다.
전역변수 volatile unsigned int uiDist; 를 선언한 상태입니다.
uiDist의 값이 계속 올라가겠죠?
마지막으로 USonic_act를 실행해봅시다.
↓
Usonic_init_int();
인터럽트로 가봅시다.
↓
0024: 인터럽트6번에 하강 엣지가 발생하면
0025: 인터럽트가 발생합니다.
0044: 이제 트리거(PORTA)를 꺼둔상태에서
0046: 트리거가 펄스를 보냅니다.
트리거가 펄스를 받아 H(High)가 되면
에코발생( 초음파 : 8싸이클 소닉 버스트)
0058: 에코가 발동됐다는게 감지가되면
0059: uiDist를 0으로 만들고 여기서 부터 다시 셉니다. (아까 uiDist는 먼저 타이머인터럽러트에서 값이 상승하고 있었습니다.)
0056: 에서 하강엣지시 인터럽트 발생조건을 걸어두었으니
벡터7이 발생이됩니다.
LCD에 켜지겠죠?
'코스웨어 > 14년 스마트컨트롤러' 카테고리의 다른 글
20140522 일일보고서 12번 (14) | 2014.05.22 |
---|---|
20140521 업무일지11번 문대영 (10) | 2014.05.21 |
20140520 일일업무일지 9번 김해성 (11) | 2014.05.20 |
2014.05.19 김진철 업무일지 [번호 8] (12) | 2014.05.19 |
2014.05.16 ATmega128 SRF05(초음파센서)를 이용한 거리 측정 (0) | 2014.05.16 |
2014년 5월 15일[스승의날] 김용우 - 수업일지 (14) | 2014.05.15 |
2014.05.14 업무일지 출석번호 5번 김상엽 (9) | 2014.05.15 |
2014 / 5 / 13 화요일 출석번호3번 김대희 (12) | 2014.05.13 |