[atmega128] 4장 적외선 센서 실습
1. 어떤 레지스터를 사용할 것인지 결정하고 avr에 핀을 연결시킨다.
2. 헤더파일에 사용할 레지스터를 추가한다.
=========main.h===============================================================================================
#ifndef _main_h_
#define _main_h_
#define DDRF (*(volatile unsigned char *) 0x61)
#define PORTF (*(volatile unsigned char *) 0x62)
#define DDRD (*(volatile unsigned char *) 0x31)
#define PIND (*(volatile unsigned char *) 0x30)
#endif
==============================================================================================================
3. main.c 파일을 작성한다.
==========main.c==============================================================================================
#include "main.h"
#define DDR_LED DDRF //LED의 방향
#define DATA_To_LED PORTF //LED로 보내지는 DATA
#define DDR_SENSOR DDRD //DATA 방향
#define DATA_from_SENSOR PIND //적외선 센서로부터 들어오는 DATA
int main(void)
{
DDR_LED = 0xFF; //LED를 출력용으로 설정함
DATA_To_LED = 0xFF; //LED로 보내지는 DATA의 출력값을 초기화
DDR_SENSOR = 0x00; //SENSOR를 입력용으로 설정함
volatile unsigned char a=0; //volatile 키워드가 없으면 delay 안됨
while(1)
{
a = DATA_from_SENSOR ; //적외선 센서로부터 들어오는 DATA값을 변수 a에 담는다.
DATA_To_LED = ~(a>>7); //적외선으로 들어오는 DATA의 값은 오른쪽으로 7번 시프트와 반전된 후에 DATA_To_LED에 담아진다.
}
return 1; //main문 반복
}
==============================================================================================================
4. main.hex파일을 생성시킨후 cmd에서 bootloader파일과 self파일을 이용해서 avr에 인코딩시킨다.
'코스웨어 > 10년 시스템제어' 카테고리의 다른 글
[시스템제어] 4월 15일 17번 유성민 (1) | 2010.04.15 |
---|---|
[시스템제어]4월13일 (15번 신관식) 업무 보고서 (1) | 2010.04.15 |
시스템제어 - 4월14일 안태민(16번) (1) | 2010.04.14 |
시스템제어 4월12일 14번 선동환 보고서 (1) | 2010.04.12 |
12번 박철민 보고서. (1) | 2010.04.08 |
11번 박동원 Atmega128 (1) | 2010.04.08 |
11번 박동원 네트워크 (1) | 2010.04.08 |
시스템 제어 4월6일 10번 문현철 (1) | 2010.04.06 |