ADC 두 개채널로 값을 입력받고, PWM파형을 만들고..문제없이 진행되다가 갑자기 심각한 문제가 생겼다.
외부인터럽트를 입력하면 인터럽트가 실행된 직후에 변수값들이 다시 원래대로 돌아오는 것이었다.
레지스터 설정에 문제가 있다고 생각하고, 세 시간정도 삽질을 한 것 같다.
답답한 마음에 AVR에 관련된 책을 읽기시작했다. 외부인터럽트에 대한 이론설명이었다.
(사실 외부인터럽트는 레지스터 설정도 쉽고, 자주 사용하던 기능이라 이론설명부분을 읽지 않고있었다)
그 때...눈에 들어온 문구.
WIN AVR GCC는 프로그램 오류를 막기위해 사용자가 지정하지 않은 인터럽트가 발생할 경우 프로그램을 reset한다.
젠장-_-...그리고 이러한 기능때문에 생기는 문제를 처리하기위해 설정되지 않은 인터럽트가 발생 시 이를 무시하도록 하는 명령어가 있었던 것이다.
EMPTY_INTERRUPT(BADISR_vect); // for empty interrupt (important)
이 한줄... 이 한 줄만 추가시키면 해결될 일을 세 시간이나 삽질을 하고있었다 -_-;;;
이러한 기능은 코드비젼에서는 없는 기능이기때문에 이런 황당한 일을 겪은 것 같다.
'자기전엔 전기전자 > Hardware' 카테고리의 다른 글
| 죽은 아트메가 살리는법, 아트메가 인공호흡법!! (0) | 2010/09/29 |
|---|---|
| usb-serial converter(PL2303) driver / USB SERIAL 컨버터 드라이버 (0) | 2010/02/03 |
| ATMega128_ ADC를 이용한 자동차 컨트롤러 (0) | 2009/12/16 |
| 패리티란 무엇인가? 홀수 패리티와 짝수 패리티의 차이와 장단점 (0) | 2009/12/14 |
| L298 datasheet 및 L298을이용한 DC모터 드라이버 회로도 (0) | 2009/11/08 |
| ATMega128 external interrupt Resister 정리(ATMega128 외부 인터럽트 레지스터 정리) (0) | 2009/09/29 |
| AVR Studio4, WIN AVR 에서 예외인터럽트 처리(자꾸 리셋될 때) (0) | 2009/09/24 |
| Hardware Seminar #2 AVR Studio 4로 다운로딩하기 및 LED 제어 (0) | 2009/09/21 |
| AVR Studio 4와 WinAVR, PonyProg2000 다운로드 및 설치 (1) | 2009/09/21 |
| 하드웨어 세미나 숙제 #1 (0) | 2009/09/21 |
| LM2575 를 이용한 5V 전원부 만들기 (0) | 2009/09/17 |


