스위치 입력 시간에 따른 차등 실행
================================ Outline ====================================
스위치 입력 시간에 따른 차등 실행
----------------------------------------------------------------------------
<스위치 입력 시간에 따른 차등 실행>
I. 서술
스위치를 입력 받아 3초 이하 시간을 입력하고 있을 경우와 3초 이상의 시간을 입력하고 있을 때의 실행 값이 다르도록 코딩을 해본다.
II. 작업 나누기
1. 인터럽트가 제대로 작동하는지 확인한다.
2. 시간 차등을 위해 시간을 설정하기 위한 코딩을 한다.
- 3초 이하는 PORTA 4번 ON
- 3초 이상은 PORTA 5번 ON
3. 조건문을 사용하여 스위치를 눌렀다가 떼었을 때 출력 값이 나오도록 한다.
III. 코딩 및 실행
1. 인터럽트 작동 확인 -> 작동한다.
2. 시간 차등을 위한 코딩
- 3초 이하: 4번핀 ON
- 3초 이상: 5번핀 ON
-> 4번 핀의 값에 불이 들어오는 것은 확인했지만 3초 이상 시 5번 핀에 불이 들어오지 않는다.
!!! PORT A초기화 설정에서 DDRA = 0xF0; 값을 입력한 결과 0~3번 핀이 모두 입력으로 되어 입력 값을 넣어주지 않은 핀은 floating 상태가 되어 카운터를 위한 조건문에 값이 입력되지 않았다.
/*** 회로도 ***/
/*** 소스 ***/
<main.c>
#include "SMART.h" |
/*** 실행 ***/
'Busan IT > AVR 컨트롤러' 카테고리의 다른 글
16비트 타이머/카운터 시계 (0) | 2015.05.14 |
---|---|
16비트 타이머/카운터 (2) | 2015.05.13 |
AVR 인공호흡법, 아날로그 비교기 (0) | 2015.05.08 |
A/D 컨버터와 조도 센서를 활용한 코딩 (0) | 2015.05.07 |
A/D 컨버터를 활용한 LCD에 문자 출력하기 (0) | 2015.05.06 |