본문 바로가기

gcc

파싱(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.. 더보기
Err operation on 'var'may be undefined 에러 원문 DescriptionResourcePathLocationType operation on 'j' may be undefineduart.c/110725_axis1line 106C/C++ Problem 내가 사용한 코드는 아래와 같다. 입력받은 데이터를 파싱하는 함수이다. if(k==4) {add=(str[j]-0x30)*1000 + (str[++j]-0x30)*100 + (str[++j]-0x30)*10 + str[++j]-0x30;} 나는 당연히 왼쪽부터 연산이 될꺼라고 생각하며 코드를 작성하였다. 그런데 문제는 연산은 오른쪽 부터 왼쪽으로 가며 연산된다는 것이다.. 그렇다면 내가 원하는 반대의 순서대로 적었어야 하는데..... 더욱이 이상한건 제대로 실행된다. 이게 컴파일러마다 조금씩 다른가?.. 더보기