아트메가 불 밝히기 : volatile, 반복문
문제 : LED 8개를 이용하여 불을 하나씩 오른쪽으로~왼쪽으로~ 움직여 보시오.
풀이 :
- Volatile을 쓰는 이유 : for를 훅~넘어가게 하지 않기 위해서. Cpu는 최적화를 하기 때문에 volatile을 안 써주면..for문이 하는 일이 없다고 보고 uicnt=65000을 바로 넣어버려, 반복문을 훅 넘어가게 된다.
참고로 16 Mhz이기 때문에..6만 오천이면… 6.5/16 초 만에 반복문 하나를 수행하는 샘.
그래서 4개를 써주면 6.5*4해서 약 1.3초 만에 움직이게 할 수 있다.
그럼..얼마나 움직이게 할 것인가..
Led 한 개의 주소는 2배 씩 뛰므로 곱하기 2를 해 준 것이다.
그리고 중요한 건 조건식.
본인은..’dir’라는 변수를 이용했다.
이 변수로 불빛이 움직여야 할 방향 (즉, 불이 들어와야 할 led의 주소값)을 판별해 준다.
그리고 범위는 128(1번 led)과 0(8번 led)으로 지정해 준다.
이상으로 아트메가 불 밝히기 : volatile, 반복문
를 해 보았다.
'C언어 업무보고' 카테고리의 다른 글
140417 연결리스트 : 연결리스트의 삽입 (0) | 2014.04.17 |
---|---|
140416 분할컴파일 및 소스인사이트 툴 사용법 (0) | 2014.04.16 |
140410 컴파일러의 설치 및 구조체 typedef (0) | 2014.04.10 |
20140409 mcu 구조와 구조체 사용 시 주의점 (0) | 2014.04.09 |
20140408 가산기회로의 구조, strcpy 함수, 구조체 배열 (0) | 2014.04.08 |