Page 134 - 2020학년도 MDP과제발표회 자료집 (통신과) (3)
P. 134
unsigned char fnd[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};
//FND 가 커먼 애노드 타입이기 때문에 일때 켜짐0
char mode[4]={0xff,0x89,0xc8,0x86};
// 모드 표시
void setting (void){ // 처음 전원을 인가했을 때 세팅되야 하는 값
DDRF = 0xff;
//led
DDRA = 0xff;
//fnd
DDRB = 0xff;
//seg
DDRC = 0xff;
//fnd2
DDRE = 0x00;
//diode
DDRG = 0xff;
//BUZ
DDRD = 0xF0;
//count ir & 인터럽트
PORTG = 0xff;
PORTF = 0x00;
PORTE = 0xff;
TIMSK = 0x05;
// 타이머 카운터 번 오버플로우/ 0 (Over Flow) 발생시 인터럽트 요청
TCCR0 = 0x00;
// 카운트 동작 주파수 1024 분주
TCCR1B = 0x00;
// 카운트 동작 주파수 1024 분주
TCNT0 = 0x00;
// TCNT0 레지스터 으로 초기화0
EIMSK = 0b0001111;
// 인터럽트 0 1 2 3 사용
EICRA = 0b10101010;
SREG |= 0x80; // 설정 인터럽트(Interrupt) 허용 }
void ir (void){
// 수광 발광 다이오드와 led 의 값을 비교하여 점수를 ++ 해주는 함수
on0 = PINF.0 ;
// led 0 번의 값을 on0 에 저장
dp0 = PINE.0 ;
// 수광 다이오드와 발광 다이오드의 값을 dp0 에 저장 마주보면 , 1 떨어지면 0
on1 = PINF.1 ;
- 138 -