회원가입 ID/PW 찾기
AA

컴파일러는 Avredit를 이용하고 있습니다.
AVR의 기능에는 기본 I/O, Timer/PWM, ADC, 시리얼통신등이 있는 걸로 알고있습니다.
지금까지 각각의 기능을 하나씩 폴링방식이나 인터럽트방식을 이용하여 연습해보았습니다.
인터럽트의 방식의 경우 하나의 기능만 연습하다 보니 갑자기 두가지 기능을 인터럽트 방식을 사용하게 되면
MPU가 과연 어떻게 처리를 하게 될 것인지 궁금하게 되었습니다.
Avredit에서 인터럽트 인에이블 명령어는 sei(); 인데요.
만약 타이머 인터럽트와 ADC 인터럽트를 사용한다고 하면
SIGANL_OVERFLOW0
{

}
SIGNAL_ADC
{

}
void timer_init()
{
}
void adc_init()
{
}
int main(void)
{
    timer_init();
    adc_init();
    sei();
}
만약 어떤 이벤트나 타이머로 1초마다 인터럽트를 걸리게 하여 ADC를 한다면 인터럽트 처리과정이 어떻게 되는지 궁금합니다.
인터럽트에 우선순위에 따라서 실행이 되는건가요?
제 질문이 제대로 표현이 되었는지 의심스럽네요...^^;
C언어에 대한 지식이 얇다 보니 함수의 처리 방법과 인터럽트의 처리방식에 대해서 정리가 잘 되질 않습니다.
함수같은 경우에는 순차적으로 생각하면 되지만 인터럽트는 함수와 별개로 동작한다는 느낌이 들어서요..
혹시나 참고할만한 책이나 글이 있으시면 추천 부탁드리겠습니다.

댓글 3
  • No Profile
    타이머 인터럽트가 발생해서 1초마다 adc를 처리하게 되겠지요..

    adc가 끝나고 나서 1초가 되면 타이머 인터럽트가 다시 발생하게 됩니다.

    adc가 1초안에 작동이 완료되면 정상작동할테고 1초 이상이 걸리게 된다면 타이머 인터럽트가 딜레이 되겠지요.

    인터럽트 함수가 끝날대까지는 기다립니다.


    타이머 주기와 adc주기가 시작 주기가 다르므로 다른 시점에서 인터럽트가 걸리겠지요(각각 처리시간이 짧으므로)
  • No Profile

    정 궁금하시면 led 3개 달아놓고

    adc, 타이머, main문을 테스트 해보시세요^^;

    몸으로 깨닫게 될겁니다.

  • No Profile

    avr강좌에서 인터럽트 부분을 보면 될것 같네요...

    http://www.smartdisplay.co.kr  <--동영상 강좌

    인터럽트라는 개념을 보면 우선순위라는게 있는데 말씀하신거와 같이 인터럽트0,타이머0,시리얼 인터럽트등등..

    우선순위가 정해져 있는데....sei(); 이것과 같이 인에이블 명령어가 있는데 이런것에 따라서 우선순위가 바뀌고

    합니다..얼레는 인터럽트 0이 타이머 0 보다 우선순위가 높지만 타이머 0 인에이블(1) 시키고 인터럽트 0을 (0)disable시키면

    우선순위가 바뀌게 되죠.. 함수는 그냥 단지 호출하면 실행되는 것뿐이지만 순차적이죠 소스상에서

    메인 소스 부분이나 그 인터럽트 함수 부분에서 우선순위를 정해주게 되면..

    우선순위가 바뀌게 됩니다..

    즉.... 일반적으로 만드는 함수는 순차적으로 실행되지만

    인터럽트 같은경우는 설정해줄수 있다 이말이죠....

    쉽게 설명한다면 .... 함수는 일상생활에서 티비를 보고 밥을 먹다가

    갑자기 전화벨이라는 인터럽트가 걸리게 되면 하던일을 중단하고 전화를 받고 끝나면 다시 티비를 보던지 하는것이죠.

    설명이 베베꼬이네요 ㅋㅋㅋ 잘모르시겠으면 강좌함 보세요~

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

search
번호 분류 제목 글쓴이 조회 수 날짜
26 펌웨어 & 코딩언어 HOT모니터 정보 읽어올때 프로토콜1 빛나는 영혼 1358 2008.03.06
25 펌웨어 & 코딩언어 HOT아~~20 あさひ 916 2008.01.15
24 펌웨어 & 코딩언어 HOT최근에 질문 받은 소스-_-;;1 아크마 761 2007.08.16
23 펌웨어 & 코딩언어 HOTRS232 컨트롤 소스2 아크마 3826 2007.04.13
22 펌웨어 & 코딩언어 HOT시리얼통신 데모 프로그램 소스2 아크마 3292 2007.04.13
21 펌웨어 & 코딩언어 HOT시리얼통신 테스트 프로그램2 아크마 3247 2007.04.13
20 펌웨어 & 코딩언어 HOT화상 캠 제어 소스5 아크마 3280 2007.04.13
19 펌웨어 & 코딩언어 HOT음성변조 관련 프로그램 소스 모음4 아크마 6548 2007.04.13
18 펌웨어 & 코딩언어 HOT어셈으로 구현한 암호화 복호화 - by 아크마4 아크마 2747 2007.08.08
17 펌웨어 & 코딩언어 HOTC를 위한 어셈블리어22 아크마 3128 2007.06.06
16 펌웨어 & 코딩언어 HOT어셈블리어 강좌 #16 [ 입력/출력 ]10 뺘쑝 3716 2007.06.02
15 펌웨어 & 코딩언어 HOT어셈블리어 강좌 #15 [ 인터럽트 : DOS가 서비스를 제공하는 방법 ]5 뺘쑝 2861 2007.06.02
14 펌웨어 & 코딩언어 HOT어셈블리어 강좌 #14 [ 스트링 작업 ]6 뺘쑝 2827 2007.05.24
13 펌웨어 & 코딩언어 HOT어셈블리어 강좌 #13 [ 산술 연산 ]9 뺘쑝 3664 2007.05.24
12 펌웨어 & 코딩언어 HOT어셈블리어 강좌 #12 [ 프로시저 ]9 뺘쑝 2886 2007.05.24
11 펌웨어 & 코딩언어 HOT어셈블리어 강좌 #11 [ 제어 흐름의 구현 ]8 뺘쑝 2527 2007.05.24
10 펌웨어 & 코딩언어 HOT어셈블리어 강좌 #10 [ 제어 흐름 ]7 뺘쑝 2646 2007.05.24
9 펌웨어 & 코딩언어 HOT어셈블리어 강좌 #9 [ 일반 명령문 ]11 뺘쑝 3226 2007.05.11
8 펌웨어 & 코딩언어 HOT어셈블리어 강좌 #8 [ 자료의 정의 ]8 뺘쑝 1931 2007.05.04
7 펌웨어 & 코딩언어 HOT어셈블리어 강좌 #7 [ 프로그램의 처리 ]6 뺘쑝 2277 2007.05.04
  • 지식인은 지금까지 일어났던 일을 안다. 천재는 앞으로 일어날 일을 안다.
    - 치아다
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.