뉴티씨



  • HOME
  • 고객지원
  • 질문답변

 

 
인터럽트 관련 문의 드립니다.
 글쓴이 : 김석현
작성일 : 20-02-19 11:55
조회 : 6,973  
현재 전원이 on되면 인터럽트 INT0가 활성화되며
스위치를 누르면 인터럽트가 off됩니다..
이것을 스위치를 on하면 인터럽트가 활성화되게 하려면 어떻게 변경해야 할까요?

#define F_CPU 16000000L          //_delay_ms()를 사용하기 위해서는 클럭 주파수를 정의 해주어야 한다.
#include <avr/io.h>                        // Atmega128의 각 레지스터와 포트들에 대한 정의를 포함한다. (어떤 cpu든 기본 사용)
#include <util/delay.h>                  // _delay_ms()를 사용하기 위해 정의 되어 있는 delay.h 파일을 포함한다.
#include <avr/interrupt.h>




ISR(INT0_vect)// 핵심 인터럽트가 걸리면 여기로 점프
{
PORTA=0xF0;
_delay_ms(500);
EIFR=0x40;      //인터럽트 발생신호를 초기화해 다시 인터럽트를 받을수 있는 상태로 만듬
}



int main(void)
{
PORTA=0x00;
DDRA=0xFF;    //포트A의 모든 포트를 출력상태로 설정
EIMSK =0x01;  //INT0의 인터럽트를 허용
MCUCR=0x03;  //MCUCR의 0번, 1번 비트를 1호 상승에지에 인터럽트 동작을 설정

sei();        //모든 인터럽트를 허용

while(1)
{
PORTA=0xFF;
_delay_ms(500);
    PORTA=0x00;
_delay_ms(500);
}
return 0;
}

 
   
 

 


1