회원가입 ID/PW 찾기
AA

추석에 test를 하다가 제가 외부 인터럽트에 대해서 test하는 도중이였어요 ㅋ

근데 스위치중에 저는 리셋옆에 있는 스타트 스위치만 인터럽트가 발생하던데 ㅋ 

다른버튼은 먹통이네여 ㅌㅌ 가르쳐주세요 ㅠ_ㅠ

소스는 ㅋ AVR-GCC로 하였구요 ㅋㅋ

내용은 이렇습니다.

// 작성 년 월 일 : 2007년 9월 26일
// 작성자 : 우주환
// project Name :KEY_TEST

#include <io.h>
#include "D:\내장형하드웨어\AVR\header\delay\delay.h"
#include "D:\내장형하드웨어\AVR\header\Comdef\Comdef.h"
#include <include\avr\interrupt.h>

void Init_Port (void)
{
  DDRA=0xff;  //Sensor_out PORT
  PORTA=0x00;

  DDRB=0xff;  //LED PORT
  PORTB=0xff;
 
//  DDRD=0xff;  //LCD PORT
//  PORTD=0xff;

  DDRE=0x0f;  //KEY & BEEP PORT
  PORTE=0xf0;
  
  DDRF=0x00;  // Sensor_in PORT
  PORTF=0x00;
}

void Init_key (void)
{
  EICRB=0xAA;  //int4~7 핀의 하강에지가 인터럽트를 트리거 한다.
  EIMSK=0xf0;    //int4~7 핀의 인터럽트를 허용한다.
  EIFR=0xff;  //clear interrupt flag
}

ISR(INT4_vect)
{
  PORTB=0x01;  //LED PORT 0b00000001;
  Delay_ms(10);  //delay 10MS 제가 만든거라서 조금 사용법은 다를수 있습니다.
}

ISR(INT5_vect)
{
  PORTB=0x02;  //LED PORT 0b00000010;
  Delay_ms(10);  //delay 10MS 제가 만든거라서 조금 사용법은 다를수 있습니다.
}

ISR(INT6_vect)
{
  PORTB=0x04;  //LED PORT 0b00000100;
  Delay_ms(10);  //delay 10MS 제가 만든거라서 조금 사용법은 다를수 있습니다.
}

ISR(INT7_vect)
{
  PORTB=0x08;  //LED PORT 0b00001000;
  Delay_ms(10);  //delay 10MS 제가 만든거라서 조금 사용법은 다를수 있습니다.
}

void main (void)
{
  Init_port();
  Delay_ms(10);
  Init_key ();
  Delay_ms(10);
  sei();  //global interrupt enable
  while(1)
  {
  }
}

//이 소스에서 INT4만 외부인터럽트가 발생하고 나머지는 발생하지 않는데 

소스가 잘못된 건가요???

댓글 6
  • No Profile

    ㅋㅋ 몰라요~~~스코프로 스위치마다 파형함 찍어보시고 제대로 되면~~소스 문제겠지요..

    조만간 제가 소스 이것저것 만들어서 전부 테스트를 해봐야할듯;;

    눈으로 봐서는..ㅋㅋ

  • No Profile
    글쓴이 빠라삐리뽀 07.09.28 15:38 댓글 좋아요 0 싫어요 0
    ㅋ_ㅋ 해결했어요 ㅋㅋㅋ 제가 소스를 잘못짠는거 같습니다. ㅠ_ㅠ

    근데 왜 그런지 아직 이해는 안된다는 ㅋㅋㅋ

    위의 소스에서 포트 초기화 부분에
    void Init_port (void)
    {
    ...
    ....
    DDRE=0xff;
    PORTE=0x00;
    }

    이렇게 선언해주니 되는군요 ㅋ
  • No Profile
    DDRE=0xff;
    PORTE=0x00;

    헐 출력으로 설정하니 된다니요..먼가 이상한..ㅋㅋㅋ
  • No Profile
    글쓴이 빠라삐리뽀 07.09.28 21:17 댓글 좋아요 0 싫어요 0

    네네 아직 저도 이해가 안가요 ㅋㅋㅋ 근데 AVR-GCC에선 되요 ㅋㅋㅋ

  • No Profile

    내부 풀업 풀다운이 의심스럽긴 하군요..근데 저러케 레지스터 설정해서는 풀업이 안될텐데..이궁-_-;;

    미스테리하군요.ㅋ.ㅋ

  • No Profile

    ??? 포트를 출력으로 한다는 게 이상하네요

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
6 Digital 회로 설계 RS플립플롭으로 존슨카운터 만들기 hnp109 99 2021.12.03
5 Digital 회로 설계 Reset IC 관련 CPU 문의 드립니다.3 Maa 179 2021.06.28
4 Digital 회로 설계 회로 질문드립니다. -2923 164 2020.12.12
3 Digital 회로 설계 relay 질문드립니다. -4903 131 2020.11.29
2 Digital 회로 설계 잡은 많은 신호가 NOT게이트 통과한다면?1 -3953 145 2020.10.21
1 Digital 회로 설계 논리회로 카르노맵 이렇게 그려도 되나요?1 Qwerty87 212 2020.09.22
  • 섣불리 예상하지 마라 특히 미래에 대해선..
    - 케이시 스텐겔
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.