본문 바로가기

AVR

인터럽트 서비스 루틴을 작성하지 않은 경우 -> RESET 발생원인 코딩중 codevision의 코드 생성기능을 사용하여 타이머 세팅 코드를 이클립스에 붙여넣기 하였다. 비교일치 인터럽트와 input capture 인터럽트를 사용하였는데 비교일치의 경우 인터럽트 서비스 루틴(이하 ISR)을 정의해 주지 않았다. 이러한 경우 어떻게 될까?..... 이유없이 무한 RESET 되었다. 그것도 일정시간이 지난후에......(ㅠㅠ) 완젼 짜증났었음...... main 문에 'start'란 문구를 uart를 통해 출력을 했다. 그리고 그밑에 while(1)이 있었음에도 불구하고.... 'start'란 문구가 반복하여 나왔다. 이것때문에 128 모듈을 하나 더 만들어버렸다... 그럼에도 똑같은 현상이 일어나네...... (어차피 128 모듈이 하나 더 필요하긴 했다.) 그래.. 더보기
unsigned int 출력하기...... %u (뻘짓....) HDD Clock 를 만드는중..... 외부인터럽트를 받아서 타이밍을 Timer 의 Input Capture 기능을 이용하여 시간을 체크하려고 하는데 아무리 해도 안되는것임.... 그래.... 지난번에 뻘짓을 알아보면..... temp=ICR1L; clock=(ICR3H) 더보기
파싱(parsing) 방법 후헤겔겔겔..... 파싱 방법을 새로 만들었다. GPS 파싱할때 많이 쓰는 방식으로 변수를 , (콤마)로 구분하고 콤마를 확인하여 숫자를 하나하나 축출하고 , 자릿수를 확인하여 각각의 자리수에 맞게 곱해서 더해주었다. (나만 이런식으로 쓴건가?....) 지금은 데이터의 길이를 미리 정해주고 그냥 한번에 뿌려주는 형식을 이용하였다. // X축 P I D Y축P I D 추력 기울기 x 기울기Y // $000 000 000 000 000 000 0000 000 000 # // 0123 456 789 012 345 678 9012 345 678 9 이런식으로 출력되게 된다. 그러면 앞에 3자리 3자리 씩 데이터를 끊어서 str->int 로 바꾸어주면 된다. 데이터를 끊어서 저장하는것은 strlcpy()를 이용하.. 더보기
make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4217b3) 컴퓨터를 포멧하고 다시 깔았다. 그리고 자바를 설치하고 Winavr 을 설치하고 컴파일을 하였는데.... 이런 에러가 나왔다. adc.c 파일이 잘못되었다나?...... 그래서 한참을 고민하고 지우고.....ㅠㅠ 에러가난 곳은 메인함수 안의 ISR(INT6_vect) 이다. 네이버를 검색하니 바로 나오네..... 원인은 WinAVR 설치경로에 ()가 들어가서이다. Windows7 x64 에서는 86(32bit)프로그램의 경우 Program Files (x86) 에 설치되게 된다. 그리하여 에러가 난 것이다. http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=87866 외국 정보 http://blog.naver.com/eyenes/1300.. 더보기