본문 바로가기
코스웨어/10년 시스템제어

13번 배정훈 보고서(4월 9일)

by 알 수 없는 사용자 2010. 4. 11.
728x90
반응형


[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에 인코딩시킨다.

728x90