게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
다른 사이트 다 돌아보고 마지막으로 오유에 온겁니다
게시물ID : programmer_11161짧은주소 복사하기
작성자 : Valentica
추천 : 0
조회수 : 1039회
댓글수 : 32개
등록시간 : 2015/06/11 19:05:22
옵션
  • 본인삭제금지
void delay();

void init_system();

int main() {
  init_system();  // 외부 인터럽트 사용을 위한 함수

  while(1) {
    PORTA = 0xff; // PORTA에 0xff 출력
  }
}

void init_system(void) { // 인터럽트를 사용하기 위한 함수로 책보면 EIMSK,EICRA,EIFR에 관해 나옴
  DDRA = 0xff;           // 포트 A를 출력형태로
  EIMSK = 0x03; // INT0 개별 인터럽트 인에이블
  EICRA = 0x0A; // INT0 하강에지 인터럽트 설정
  EIFR = 0x01; // 인터럽트0 플래그 레지스터 클리어
  __enable_interrupt(); // 전체 인터럽트 인에이블로 SREG의 I비트를 1로 만드는 놈
}

#pragma vector = INT0_vect // 인터럽트 벡터 지정
// 인터럽트 서비스 함수 

__interrupt void ex0_int_ser() { // 외부 인터럽트 0이 발생하면 i에 0x0f를 저장하고 포트a에 반전출력
    i = 0x0f;
    PORTA = ~i;
    delay(); // 결과값을 눈으로 확인하기 위한놈으로 없어도 상관없는거
}

#pragma vector = INT1_vect

__interrupt void ex1_int_ser() { // 외부 인터럽트 1이 발생할시 i에 0xf0을 저장하고 그걸 포트 a에 반전출력
    i = 0xf0;
    PORTA = ~i;
    delay();
}


void delay() {
  for(int i = 0; i < 6000; i++) for(int j = 0; j < 30; j++);
}

-------------------------------------------------------------------------

다른사이트 다 돌면서 이게 어떤거고 저게 어떤건지

제가 직접 주석 달았습니다 하지만 제가 직접 주석 달아도 이해가 잘 안갑니다

애시당초 다른 사이트에서 찾은 명령어의 사용법이나 기능들을 이해하고 적은게 아닙니다 그냥 적은겁니다

원인은 [의미를 모르는 단어]때문인것 같습니다.

이를테면 초등학생 꼬마가 이렇게 물었습니다
"엄마 무지개는 왜 생기는 거예요?"
"빛의 스펙트럼 때문에 생긴단다 ^^"

꼬마는 엄마의 친절한 설명을 들어도 이해 할 수가 없었습니다.


★위 소스코드를 초등학생도 이해 할 수 있는 낮은 수준으로 설명부탁드려도 되겠습니까?★


전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호