로그인 | 회원가입 | 주문 조회
총 10,743개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
5928 답변완료꼭 좀 도와주세요ㅠ 정회영 2010-11-27 1,327
#include <avr/io.h> #include <avr/interrupt.h> #define MOTOR_PORT PORTC #define MOTOR_PORT_DDR DDRC void port_init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //m103 output only DDRC = 0xff; PORTD = 0x00; DDRD = 0x00; PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; PORTG = 0x00; DDRG = 0x00; } //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up cli(); //disable all interrupts XMCRA = 0x00; //external memory XMCRB = 0x00; //external memory port_init(); MCUCR = 0x00; EICRA = 0x00; //extended ext ints EICRB = 0x00; //extended ext ints EIMSK = 0x00; TIMSK = 0x00; //timer interrupt sources ETIMSK = 0x00; //extended timer interrupt sources sei(); //re-enable interrupts //all peripherals are now initialized } /* Stepping Motor derive---------------------------*/ unsigned char LEFTmotorOneClock(unsigned char step, char dir) { step = step & 0x0f; if(dir){ switch(step){ case 0x09: step=0x01; break; case 0x01: step=0x03; break; case 0x03: step=0x02; break; case 0x02: step=0x06; break; case 0x06: step=0x04; break; case 0x04: step=0x0c; break; case 0x0c: step=0x08; break; case 0x08: step=0x09; break; default: step=0x0c; break; } }else{ switch(step){ case 0x09: step=0x08; break; case 0x01: step=0x09; break; case 0x03: step=0x01; break; case 0x02: step=0x03; break; case 0x06: step=0x02; break; case 0x04: step=0x06; break; case 0x0c: step=0x04; break; case 0x08: step=0x0c; break; default: step=0x0c; break; } } return step; } /* Stepping Motor derive---------------------------*/ unsigned char RIGHTmotorOneClock(unsigned char step, char dir) { step = step & 0xf0; if(dir){ switch(step){ case 0x90: step=0x10; break; case 0x10: step=0x30; break; case 0x30: step=0x20; break; case 0x20: step=0x60; break; case 0x60: step=0x40; break; case 0x40: step=0xc0; break; case 0xc0: step=0x80; break; case 0x80: step=0x90; break; default: step=0xc0; break; } }else{ switch(step){ case 0x90: step=0x80; break; case 0x10: step=0x90; break; case 0x30: step=0x10; break; case 0x20: step=0x30; break; case 0x60: step=0x20; break; case 0x40: step=0x60; break; case 0xc0: step=0x40; break; case 0x80: step=0xc0; break; default: step=0xc0; break; } } return step; } void delay(unsigned int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<1000;j++); } } -------------------------------------------------------------------------------- -- #include <stdio.h> -- #include <math.h> -- -- void main() -- { -- double delta = -20; -- double pi_temp = 37.52; -- double h[24]; -- int t[24]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23}; -- -- double z[24]; -- int i; -- -- for (i=0;i<24;i++) -- { -- z[i]= acos(sin(pi_temp)*sin(delta)+cos(pi_temp)*cos(delta)*cos(t[i])); -- h[i]= 90-z[i]; -- printf("z[%d] = %f h[%d] = %f\\n", i,z[i],i, h[i]); -- -- } -- } ---------------------------------------------------------------------------- // int main(void) { volatile unsigned char stepleft=0, stepright=0; init_devices(); //insert your functional code here... MOTOR_PORT_DDR = 0xff; while(1){ stepright = RIGHTmotorOneClock(8, 1); stepleft = LEFTmotorOneClock(stepleft, 0); delay(3); MOTOR_PORT = stepleft|stepright; } return 0; } 기존 csp 모터 예제 소스에 제가 cosz = sinφsinδ+cosφcosδcost 식을 이용하여 z 값을 구하는 소스를 집어 넣었습니다. -- 으로 표시한 부분이 제가 집어 넣은 소스 부분입니다. 이 때 h는 00시에서 23시까지 나누었습니다. 그래서 구한 z값을 h= 90°- z 에 집어 넣어 최종적으로 출력 h 값을 구했습니다. 한 시간에 h 값으로 움직이게 하려고 8펄스를 집어 넣었습니다. 제가 모터 구동 초보라ㅠㅠ 도움 받고 싶습니다.ㅠㅠ 꼭 좀 도와주세요ㅠㅠ
관리자 답변 NEWTC · 2010-11-29
안녕하세요 본사에서 판매 또는 제공 되는 예제코드들에 대해서는 써포트를 하지만, 코드 수정에 관련한 문의 써포트를 하지않습니다. 시간에 따른 동작을 원할경우는 타이머를 이용하시길 바랍니다. http://www.newtc.co.kr/board/zboard.php?id=pds&select_arrange=headnum&desc=asc&page_num=15&selected=&exec=&sn=off&ss=on&sc=off&category=&keyword=%C5%B8%C0%CC%B8%D3 수고하세요 >#include <avr/io.h> >#include <avr/interrupt.h> > > >#define MOTOR_PORT PORTC >#define MOTOR_PORT_DDR DDRC > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0x00; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; //m103 output only > DDRC = 0xff; > PORTD = 0x00; > DDRD = 0x00; > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; > PORTG = 0x00; > DDRG = 0x00; >} > > >//call this routine to initialize all peripherals >void init_devices(void) >{ > //stop errant interrupts until set up > cli(); //disable all interrupts > XMCRA = 0x00; //external memory > XMCRB = 0x00; //external memory > port_init(); > > MCUCR = 0x00; > EICRA = 0x00; //extended ext ints > EICRB = 0x00; //extended ext ints > EIMSK = 0x00; > TIMSK = 0x00; //timer interrupt sources > ETIMSK = 0x00; //extended timer interrupt sources > sei(); //re-enable interrupts > //all peripherals are now initialized >} > > >/* Stepping Motor derive---------------------------*/ >unsigned char LEFTmotorOneClock(unsigned char step, char dir) >{ > step = step & 0x0f; > if(dir){ > switch(step){ > case 0x09: step=0x01; break; > case 0x01: step=0x03; break; > case 0x03: step=0x02; break; > case 0x02: step=0x06; break; > case 0x06: step=0x04; break; > case 0x04: step=0x0c; break; > case 0x0c: step=0x08; break; > case 0x08: step=0x09; break; > default: step=0x0c; break; > } > }else{ > switch(step){ > case 0x09: step=0x08; break; > case 0x01: step=0x09; break; > case 0x03: step=0x01; break; > case 0x02: step=0x03; break; > case 0x06: step=0x02; break; > case 0x04: step=0x06; break; > case 0x0c: step=0x04; break; > case 0x08: step=0x0c; break; > default: step=0x0c; break; > } > } > return step; > >} > >/* Stepping Motor derive---------------------------*/ >unsigned char RIGHTmotorOneClock(unsigned char step, char dir) >{ > step = step & 0xf0; > if(dir){ > switch(step){ > case 0x90: step=0x10; break; > case 0x10: step=0x30; break; > case 0x30: step=0x20; break; > case 0x20: step=0x60; break; > case 0x60: step=0x40; break; > case 0x40: step=0xc0; break; > case 0xc0: step=0x80; break; > case 0x80: step=0x90; break; > default: step=0xc0; break; > } > }else{ > switch(step){ > case 0x90: step=0x80; break; > case 0x10: step=0x90; break; > case 0x30: step=0x10; break; > case 0x20: step=0x30; break; > case 0x60: step=0x20; break; > case 0x40: step=0x60; break; > case 0xc0: step=0x40; break; > case 0x80: step=0xc0; break; > default: step=0xc0; break; > } > } > return step; >} > > >void delay(unsigned int n) >{ > volatile int i,j; > for(i=1;i<n;i++) > { > for(j=1;j<1000;j++); > } >} > >-------------------------------------------------------------------------------- >-- #include <stdio.h> >-- #include <math.h> >-- >-- void main() >-- { >-- double delta = -20; >-- double pi_temp = 37.52; >-- double h[24]; >-- int t[24]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23}; >-- >-- double z[24]; >-- int i; >-- >-- for (i=0;i<24;i++) >-- { >-- z[i]= acos(sin(pi_temp)*sin(delta)+cos(pi_temp)*cos(delta)*cos(t[i])); >-- h[i]= 90-z[i]; >-- printf("z[%d] = %f h[%d] = %f\\n", i,z[i],i, h[i]); >-- >-- } >-- } >---------------------------------------------------------------------------- > >// >int main(void) >{ > volatile unsigned char stepleft=0, stepright=0; > > init_devices(); > //insert your functional code here... > > > MOTOR_PORT_DDR = 0xff; > while(1){ > stepright = RIGHTmotorOneClock(8, 1); > stepleft = LEFTmotorOneClock(stepleft, 0); > delay(3); > MOTOR_PORT = stepleft|stepright; > } > return 0; >} > > > >기존 csp 모터 예제 소스에 제가 cosz = sinφsinδ+cosφcosδcost 식을 이용하여 z 값을 구하는 소스를 집어 넣었습니다. -- 으로 표시한 부분이 제가 집어 넣은 소스 부분입니다. >이 때 h는 00시에서 23시까지 나누었습니다. 그래서 구한 z값을 h= 90°- z 에 집어 넣어 최종적으로 출력 h 값을 구했습니다. 한 시간에 h 값으로 움직이게 하려고 8펄스를 집어 넣었습니다. 제가 모터 구동 초보라ㅠㅠ 도움 받고 싶습니다.ㅠㅠ 꼭 좀 도와주세요ㅠㅠ >
5927 답변완료죄송합니다.-USBISP-L 전준형 2010-11-26 1,270
다른 PC에서는 인스톨 되네요 PC환경에 따라 인스톨안되는 경우를 저도 처음 경험해봐서 좀 당황스럽네요 빠르고 친절한 답변 감사합니다. 수고하십시요^_^
관리자 답변 NEWTC · 2010-11-26
간혹 PC 레지스트리나 드라이버가 꼬여서 그런 경우가 있습니다. 레지스트리 클린 같은 거 한 번 해보세요. 보통은 그런 경우, 포맷을 하면 잘 됩니다만, 그 전에 www.no-ad.co.kr 가서 노애드 Toolbar를 다운 받아서, 레지스트리 클린을 하고 한 번 해보세요. 수고하세요. >다른 PC에서는 인스톨 되네요 > >PC환경에 따라 인스톨안되는 경우를 저도 처음 경험해봐서 좀 당황스럽네요 > >빠르고 친절한 답변 감사합니다. >수고하십시요^_^ >
5926 답변완료조금전 질문한 사람입니다. 전준형 2010-11-26 1,375
빠른 답변 감사드립니다. 조금전 인스톨 관련 질문을 드린 전준형입니다. 교육용으로 사용하고자 USBISP-L을 25 Set구입했는데 노트북 뿐아니라 실습용 데스크탑에도 모두 같은 현상을 보입니다. OS는 모두 XP Professional입니다. 일부 PC를 포멧해보고 다시 설치해보겠습니다. 만약 그래도 안될 경우 본사로 가야 됩니까 아니면 다른지점으로 가도 되는지요
관리자 답변 NEWTC · 2010-11-26
USBISP-L확인이 가능하곳은 본사뿐입니다. 오실때는 미리 연락을 주시길 바랍니다. 수고하세요 >빠른 답변 감사드립니다. >조금전 인스톨 관련 질문을 드린 전준형입니다. > >교육용으로 사용하고자 USBISP-L을 25 Set구입했는데 > >노트북 뿐아니라 실습용 데스크탑에도 모두 같은 현상을 보입니다. > >OS는 모두 XP Professional입니다. > >일부 PC를 포멧해보고 다시 설치해보겠습니다. >만약 그래도 안될 경우 본사로 가야 됩니까 아니면 다른지점으로 가도 되는지요
5925 답변완료AD-USBISP-L윈도우 인스톨관련 전준형 2010-11-26 1,352
드라이버를 다운받아서 윈도우에서 인스톨하면 새로운 하드웨어 발견 창이 계속 반복해서 뜹니다.(O.S.는 XP입니다.) 계속 인스톨(다운받은 드라이버 압축파일을 풀어놓은 폴더를 지정해서 인스톨 해보고 윈도우에서 권장하는 방법으로 인스톨도 해 보았습니다.) 하라는 창이 뜹니다. 인스톨하라는 창을 취소시키고 장치관리자를 보면 USB Serial N.T.C.라고 포트(COM 및 LPT)라고 나오는데 COM포트 번호는 안나옵니다. 속성창을 열어보면 사용할 수 없음이 선택되어 있는데 왜 이런가요 장치관라자 그림파일을 같이 올려놓았습니다.
관리자 답변 NEWTC · 2010-11-26
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 그런 증상은 사실 처음 봅니다. 드라이버가 설치가 제대로 되지 않고, 꼬인 것 같습니다. 제거 후에, 다시 다운로드 받아서, 설치해 주시기 바랍니다. 2-3번 해도 계속 그런 증상이 지속되면, 본사로 USBISP와 사용하시는 노트북을 함께 가지고 방문하여 주시는 것이 가장 빠른 해결책입니다. 오시기 어려우시다면, 제품이라도 점검 받아 보시기 바랍니다. 다른 PC에 한 번 깔아서, 설치해 보시구요. 거기선 정상이라면, 드라이버 설치를 잘 해야 할 것 같습니다. 잘 안된다면, 본사로 보내주세요. WIN7 설치 방법과 같이 하면, 좀 개선될 수도 있을 것 같습니다. 완전 다른 장비로 인식하니까요. 감사합니다. >드라이버를 다운받아서 윈도우에서 인스톨하면 >새로운 하드웨어 발견 창이 계속 반복해서 뜹니다.(O.S.는 XP입니다.) >계속 인스톨(다운받은 드라이버 압축파일을 풀어놓은 폴더를 지정해서 인스톨 해보고 >윈도우에서 권장하는 방법으로 인스톨도 해 보았습니다.) 하라는 창이 뜹니다. > >인스톨하라는 창을 취소시키고 장치관리자를 보면 >USB Serial N.T.C.라고 포트(COM 및 LPT)라고 나오는데 >COM포트 번호는 안나옵니다. > >속성창을 열어보면 사용할 수 없음이 선택되어 있는데 왜 이런가요 >장치관라자 그림파일을 같이 올려놓았습니다. > > >
5924 답변완료FM-BB2 ByteBlaster 문의건. LEE KWANG 2010-11-26 1,443
안녕하세요. 지난주에 귀사 ByteBlaster를 구매해서 사용하려고 보니 제 데스크탑 컴은 USB만 있어서 USB to Parallel 별도 구매하여 연결을 해보았는데 장비 인식이 안되는데 혹시 다른 프로그램을 깔아야 되나요? Altera Stratix IV를 사용중이며 Quartus II 10.0 사용중이며 USB Blaster는 잘 동작하는데 가격이 비싸서 구매를 했는데 인스톨이 안되요? 회신 부탁 드립니다.
관리자 답변 NEWTC · 2010-11-26
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사드립니다. 우선, 시중에서 구매가능한 USB to Parallel은 모두 프린터 전용입니다. 임베디드로 쓰려면 LPT로 잡혀야 하는 데, 그게 지원 안 됩니다. 패러렐 포트에 직접 물려 쓰셔야 합니다. 사용하시는 메인보드에 혹시 패러렐 포트 꽂는 헤더 자리는 있는 지 확인하신 후에, 있는 데, 바깥으로 빠지지 않은 거라면, 본사에 거기에 꽂은 후에 외부로 빼주는 케이블이 있습니다. 2.54mm 피치 간격의 커넥터가 맞는 지 확인하시고, 함께 구매하셔서 사용하시면 됩니다. 가격은 11,000원(부가세포함)입니다. AD-EXTLPT로 주문하시면 됩니다. 감사합니다. >안녕하세요. >지난주에 귀사 ByteBlaster를 구매해서 사용하려고 보니 제 데스크탑 컴은 USB만 있어서 >USB to Parallel 별도 구매하여 연결을 해보았는데 장비 인식이 안되는데 혹시 다른 프로그램을 >깔아야 되나요? >Altera Stratix IV를 사용중이며 Quartus II 10.0 사용중이며 USB Blaster는 잘 동작하는데 >가격이 비싸서 구매를 했는데 인스톨이 안되요? >회신 부탁 드립니다. > >
5923 답변완료시리얼케이블 문의 드립니다. 박정환 2010-11-25 1,333
[구입제품] ATMega128 Pro-A 키트 AVR용 USB-ISP다운로더(AD-USBISP) 시리얼 케이블, 8LED 모듈, 버튼 모듈 등... 엘레파츠에서 주문한 뉴티씨 제품이 오늘 도착했습니다. 제가 집에서는 노트북으로 테스트를 해야 하는데.... 노트북에는 Serial 포트가 없습니다. [질문] 1. 같이 구매한 ISP 케이블을 이용해서 Serial Cable 처럼(디버깅 및 직렬통신..) 사용이 가능한가요? 2. 1번이 안된다면 시중에 판매되는 USB-Serial 변환케이블(젠더)를구입해서 사용이 가능한가요? 답변 부탁드리겠습니다.
관리자 답변 박정환 · 2010-11-25
추가문의..... 제품을 받아서 처음 켰는데... 조금 이상한 부분이 있어서 추가 문의 드립니다. 같이 구매한 LED 는 어떤 포트에연&#44215;든지 순서대로 점등된는데... 보드에 있는 FND 가 안켜지는 부분들이 있습니다. 4개가 원래 모두 동일하게 &#53042;야 하는게 아닌지요 ? 특정 FND 쪽에 안켜지는 Digit 가 있습니다......
5922 답변완료질문있습니다. 정재여 2010-11-25 1,406
자꾸 같은질문드리네요. ISP가 순수 다운용인건 알고있습니다. 제가 알고싶은건 단순히 현재 뉴티씨서 팔고있는 usb-isp 44000원에 판매되고잇는 전문가용..이제품을 사용하면 다운로드가 되는지입니다. 제가 제품을 가져가고 가져오고 할 시간이 없어서 이런질문을 드리는겁니다. 그리고 전문가용 그 제품에 제가 구매한 이 키트를 다운로드하기위한 케이블같은것도 다 들어있는지도 알고싶구요.
관리자 답변 NEWTC · 2010-11-25
안녕하세요 다운로드 및 퓨즈 변경 모두 가능합니다. 키트와 연결이 가능하도록 케이블 모두 있습니다. 수고하세요 >자꾸 같은질문드리네요. > >ISP가 순수 다운용인건 알고있습니다. > >제가 알고싶은건 단순히 현재 뉴티씨서 팔고있는 usb-isp 44000원에 판매되고잇는 전문가용..이제품을 사용하면 다운로드가 되는지입니다. > >제가 제품을 가져가고 가져오고 할 시간이 없어서 이런질문을 드리는겁니다. > >그리고 전문가용 그 제품에 제가 구매한 이 키트를 다운로드하기위한 케이블같은것도 다 들어있는지도 알고싶구요. > >
5921 답변완료PC와의 통신 관련 이준영 2010-11-25 1,384
RF 무선통신 관련해서 질문올립니다 간단히 말해서 PC에서 로봇에 명령을 주어 움직이게 하는 것을 구현하려 하는데요 현재 RF 모듈은 2.4GHz Band AM-RFMOD 을 사용하고 있고요 AVR 개발보드 AVR MEGA 128pro 개발키트 KD-128Pro 2개를 쓰고 있습니다. power는 AVR 포트(ISP 포트)를 PC와 AVR에 연결해 주고 있습니다. 일단 셋팅은 baud rate나 parity 등등은 맞췄구요 RS-232 모듈을 PC에 연결하고 AVR의 UART0에 연결하고 개발보드에 있는 UART0에 RF 모듈을 연결하였습니다. (모듈 살 때 들어있던 4핀케이블을 그대로 연결) 그리고 나서 전원을 주니 RF 모듈의 op에 불이 들어왔습니다. 로봇에도 AVR과 개발보드가 있어서 여기에 있는 개발보드의 UART0에 RF 모듈을 연결하였습니다. 참고로 무선통신 하기 전에 RS-232 시리얼 포트를 AVR에 연결하고 LED를 개발보드 portA에 연결해 명령을 주면 켜지는 유선통신을 확인한 상태인데요 위에처럼 연결하고 PC에서 명령을 주었을 때 원활히 송수신이 되지 않는 것을 알 수 있었습니다. 그래서 궁금한 것은 1. 앞에 질문들과 답을 보니 RF 모듈을 위해 따로 코딩을 할 필요가 없다고 하셨는데 그럼 이렇게 그냥 연결하였을 때 안되는 것은 어떠한 문제인지? 추가적으로 다른 어떠한 것이 필요한 것인지 (홈페이지에는 일반 UART 통신이 가능하다고 써있어서요..) (프로그래밍은 visual studio C++로 하였습니다) 2. USB-Serial 변환 보드 AD-USBSERIAL <- 이것을 쓰지 않고 위에 처럼 연결하는 것 자체는 맞는 것인지가 궁금합니다. 3. 1,2번이 문제가 아니라면 어떠한 것이 문제인지 무선통신은 처음인지라 기본적인 것에서도 실수할 수 있을 거라 생각하여 질문 올립니다 그리고 궁금한게 9핀짜리 시리얼 포트 없이 ISP 포트 V03만으로도 pc와 RF모듈연결해서 사용해도 되나요? ISP 포트 V03에 UART 연결 하는게 있어서 이 4핀과 RF의 4핀을 연결했는데 이 때 따로 시리얼 포트 필요없이 그냥 ISP포트와 RF모듈만 연결하면 되나요? 답변 부탁드릴께요~
관리자 답변 NEWTC · 2010-11-25
안녕하세요 1. 앞에 질문들과 답을 보니 RF 모듈을 위해 따로 코딩을 할 필요가 없다고 하셨는데 그럼 이렇게 그냥 연결하였을 때 안되는 것은 어떠한 문제인지? 추가적으로 다른 어떠한 것이 필요한 것인지 UART 사용방법과 동일하게 코딩하여 사용하면 됩니다. 2. USB-Serial 변환 보드 AD-USBSERIAL <- 이것을 쓰지 않고 위에 처럼 연결하는 것 자체는 맞는 것인지가 궁금합니다. 1 - PC <----USBISPV03----> RFMOD ..... RFMOD <-----------> KIT 2 - PC <----KIT-----------> RFMOD ..... RFMOD <------------> KIT 3 - KIT <------------------> RFMOD ..... RFMOD <------------> KIT 위처럼 연결해서 사용이 가능합니다. 4핀 케이블중 RX .TX 보드에 따라 크로스로 연결하거나 다이렉트 연결하셔야 합니다. -크로스 VCC ------ VCC RX ----- TX TX ----- RX GND ------ GND LED 3개중 하나는 전원이 인가되면 나오고 나머지 2개는 데이터 송/수신용 입니다. #9핀짜리 시리얼 포트 없이 ISP 포트 V03만으로도 pc와 RF모듈연결해서 사용해도 되나요? ISP 포트 V03에 UART 연결 하는게 있어서 이 4핀과 RF의 4핀을 연결했는데 이 때 따로 시리얼 포트 필요없이 그냥 ISP포트와 RF모듈만 연결하면 되나요? PC <----USBISPV03---> RFMOD 위같이 연결이 가능합니다. 단 ISP기능을 사용할수 없고, ISP 관련 케이블 연결 하시면 안됩니다. 수고하세요 > >RF 무선통신 관련해서 질문올립니다 > > > >간단히 말해서 PC에서 로봇에 명령을 주어 움직이게 하는 것을 구현하려 하는데요 > > > >현재 RF 모듈은 2.4GHz Band AM-RFMOD 을 사용하고 있고요 > > > >AVR 개발보드 AVR MEGA 128pro 개발키트 KD-128Pro 2개를 쓰고 있습니다. > > > >power는 AVR 포트(ISP 포트)를 PC와 AVR에 연결해 주고 있습니다. > > > >일단 셋팅은 baud rate나 parity 등등은 맞췄구요 > > > >RS-232 모듈을 PC에 연결하고 AVR의 UART0에 연결하고 > > > >개발보드에 있는 UART0에 RF 모듈을 연결하였습니다. (모듈 살 때 들어있던 4핀케이블을 그대로 연결) > > > >그리고 나서 전원을 주니 RF 모듈의 op에 불이 들어왔습니다. > > > >로봇에도 AVR과 개발보드가 있어서 여기에 있는 개발보드의 UART0에 RF 모듈을 연결하였습니다. > > > >참고로 무선통신 하기 전에 RS-232 시리얼 포트를 AVR에 연결하고 > > > >LED를 개발보드 portA에 연결해 명령을 주면 켜지는 유선통신을 확인한 상태인데요 > > > >위에처럼 연결하고 PC에서 명령을 주었을 때 원활히 송수신이 되지 않는 것을 알 수 있었습니다. > > > >그래서 궁금한 것은 > > > >1. 앞에 질문들과 답을 보니 RF 모듈을 위해 따로 코딩을 할 필요가 없다고 하셨는데 > > 그럼 이렇게 그냥 연결하였을 때 안되는 것은 어떠한 문제인지? 추가적으로 다른 어떠한 것이 필요한 것인지 > > (홈페이지에는 일반 UART 통신이 가능하다고 써있어서요..) > > (프로그래밍은 visual studio C++로 하였습니다) > > > >2. USB-Serial 변환 보드 AD-USBSERIAL <- 이것을 쓰지 않고 위에 처럼 연결하는 것 자체는 > > 맞는 것인지가 궁금합니다. > > > >3. 1,2번이 문제가 아니라면 어떠한 것이 문제인지 > > > >무선통신은 처음인지라 기본적인 것에서도 실수할 수 있을 거라 생각하여 질문 올립니다 > > > >그리고 궁금한게 > > >9핀짜리 시리얼 포트 없이 ISP 포트 V03만으로도 pc와 RF모듈연결해서 사용해도 되나요? > > >ISP 포트 V03에 UART 연결 하는게 있어서 이 4핀과 RF의 4핀을 연결했는데 > > >이 때 따로 시리얼 포트 필요없이 그냥 ISP포트와 RF모듈만 연결하면 되나요? > > > > > > > > >답변 부탁드릴께요~ > > >
5920 답변완료Atmega128 라인트레이서 예제소스 문의 박상일 2010-11-25 1,397
어제 Atmega128 라인트레이서 견적문의로 전화를 드렸었는데요... 128보드를 구매할 경우 KR-DL16에서 CD로 제공되는 동일한 소스를 Atmega128에서 호환되게끔 제공 이 되나요??? 만약 제공이 된다면 어느정도 범위까지 예제소스가 있는지 궁금합니다.
관리자 답변 NEWTC · 2010-11-25
안녕하세요 KR-DL16 로 된 키트를 메인칩만 변경될경우 유선상으로 주문하시고요 제공되는 코드도 mega128로 변경되어 나갑니다. 수고하세요 > 어제 Atmega128 라인트레이서 견적문의로 전화를 드렸었는데요... > >128보드를 구매할 경우 KR-DL16에서 CD로 제공되는 동일한 소스를 Atmega128에서 호환되게끔 제공 > >이 되나요??? > >만약 제공이 된다면 어느정도 범위까지 예제소스가 있는지 궁금합니다.
5919 답변완료USBISP V03 WINDOWS7 64bit 드라이버 설치 문제 구본민 2010-11-25 1,494
안녕하세요. 수고 많으십니다. 다름이 아니라 USBISP V03을 WINDOWS7 64bit에 설치 할때 문제가 생겨서 이렇게 질문드립니다. PID : EA60으로 변경하여 WINDOWS7 드라이버를 정상적으로 설치 하였습니다. 그런데 느낌표가 안 없어지네요. CP2102를 사용하는 다른 장치는 정상적으로 설치해서 잘 사용하고 있는데 이상하게 드라이버가 설치가 안되서 이렇게 질문 드립니다. 드라이버는 SIlicon LAB.의 최신 드라이버 6.1을 받아서 설치했습니다. 장치 관리자 캡쳐 화면도 함께 올리오니 혹 유사한 경우나 해결 방법이 있으시면 답변 부탁드립니다. 참 처음에 모를때 PID: EA60으로 변경하지 않고 드라이버 설치한적 있구요 모두 삭제하고 제 설치했습니다. 혹시나 해서...^^ 그럼 수고하시고 미리 감사드립니다.
관리자 답변 NEWTC · 2010-11-25
안녕하세요 동일한 SIlicon칩셋을 동일한 USB에 연결하면 사용이 불가합니다. 본체 뒤편에 나오는 보통 USB 포트 4개입니다. USB1 ,USB2 ,USB3, USB4 밖에서 볼때는 4개의 USB로 보이지만 USB포트2개당 하나의 USB 입니다. 즉 내부 USB허브를 사용하고 있습니다. 다른쪽 USB로 연결하시면 됩니다. 외장용 허브도 동일하게 적용 됩니다. 수고하세요 >안녕하세요. 수고 많으십니다. > >다름이 아니라 USBISP V03을 WINDOWS7 64bit에 설치 할때 문제가 생겨서 이렇게 > >질문드립니다. > >PID : EA60으로 변경하여 WINDOWS7 드라이버를 정상적으로 설치 하였습니다. > >그런데 느낌표가 안 없어지네요. > >CP2102를 사용하는 다른 장치는 정상적으로 설치해서 잘 사용하고 있는데 > >이상하게 드라이버가 설치가 안되서 이렇게 질문 드립니다. > >드라이버는 SIlicon LAB.의 최신 드라이버 6.1을 받아서 설치했습니다. > >장치 관리자 캡쳐 화면도 함께 올리오니 혹 유사한 경우나 해결 방법이 있으시면 > >답변 부탁드립니다. > >참 처음에 모를때 PID: EA60으로 변경하지 않고 드라이버 설치한적 있구요 모두 삭제하고 > >제 설치했습니다. 혹시나 해서...^^ > >그럼 수고하시고 미리 감사드립니다.
5918 답변완료kd128보드 추가질문입니다. 정재여 2010-11-25 1,492
아래..jtag 사용할꺼면 isp가 있어야 된다고 햇는데, 그럼 isp다운로더가 없으면 jtag은 애초에 사용이 불가한건가요-.-;; 전 사용이 가능한줄알고 jtag을 구매한건데. 그럼 대체 무엇을 구매해야 하는건지 정확히 좀 알려주십시요. isp 전문가용 44000원 짜리가 있던데 그거 구입하면 되는건지요... 그리고 그거 구매하면 kd128보드에 라이팅이 가능한건지요...추가로 케이블도 더 구매해야 하는지요. 알려주세요!
관리자 답변 NEWTC · 2010-11-25
안녕하세요 JTAG은 다운로드 및 코드 디거버 용, ISP는 순수 다운로드 목적으로만 사용됩니다. 8비트계열은 JTAG 기능이 잘 없고. 있어도 사용을 잘 하지않습니다. 퓨즈변경은 ISP로 변경이 가능합니다. 보드를 본사로 가지고 오시면 퓨즈를 변경시켜 드립니다. 수고하세요 >아래..jtag 사용할꺼면 isp가 있어야 된다고 햇는데, 그럼 isp다운로더가 없으면 jtag은 애초에 사용이 불가한건가요-.-;; > >전 사용이 가능한줄알고 jtag을 구매한건데. > >그럼 대체 무엇을 구매해야 하는건지 정확히 좀 알려주십시요. > >isp 전문가용 44000원 짜리가 있던데 그거 구입하면 되는건지요... > > >그리고 그거 구매하면 kd128보드에 라이팅이 가능한건지요...추가로 케이블도 더 구매해야 하는지요. > >알려주세요! > >
5917 답변완료jtag 다운로더가 인식이 안됩니다. 정재여 2010-11-25 1,433
현재 키트는 kd-128pro 완제품 키트를 사용하고 다운로더는 ad-jtag v02를 사용하고있습니다. 이 두 제품을 구매해서 제 프로그램을 다운로드 해볼려고 하는데, 문제는 avr studio(v4.13)에서 인식이 안됩니다. 매뉴얼에서 지시하는데로 다 했는데도 인식이 안되고,이상한 메세지가 뜹니다. 다른컴퓨터로도 해봤는데, 같은 증상이 나옵니다. 에러메세지는 스샷으로 첨부하였습니다. 확인하고 해결 좀 부탁드리겠습니다. 별것도 아닌게 문제가 발생하니 답답하네요.
관리자 답변 NEWTC · 2010-11-25
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. JTAG은 AVR의 퓨즈비트에서 JTAGEN이 체크 되어 있어야 가능합니다. KD-128PRO 킷트는 판매시에 퓨즈의 JTAGEN이 체크되어 있지 않습니다. ISP를 통해서 JTAGEN을 체크해 주셔서 Write 해 주셔야 합니다. 하기 힘드시거나 ISP가 없다면 본사로 방문하시거나 택배로 가능합니다 물론, 택배비는 고객님이 부담하셔야 합니다. JTAGEN이 체크가 되면 F 포트의 4비트를 사용할 수가 없게 됩니다. 따라서, ADC를 4비트 못쓰게 된다는 얘기지요. 그래서, 본사에서는 JTAGEN을 체크 안해서 나가고 있습니다. 꼭 필요하시면 체크해서 쓰시면 됩니다. 감사합니다. >현재 키트는 kd-128pro 완제품 키트를 사용하고 다운로더는 ad-jtag v02를 사용하고있습니다. > >이 두 제품을 구매해서 제 프로그램을 다운로드 해볼려고 하는데, 문제는 avr studio(v4.13)에서 인식이 안됩니다. > >매뉴얼에서 지시하는데로 다 했는데도 인식이 안되고,이상한 메세지가 뜹니다. > >다른컴퓨터로도 해봤는데, 같은 증상이 나옵니다. > >에러메세지는 스샷으로 첨부하였습니다. > >확인하고 해결 좀 부탁드리겠습니다. > >별것도 아닌게 문제가 발생하니 답답하네요. >
5916 답변완료usb isp 질문 마재락 2010-11-24 1,315
제가 이번에 AVR용 USB-ISP 라이트 V03(AD-USBISP V03-L)를 구매했는데요? 이걸 이용해서 AT89S51칩에다가 제가 짜놓은 se-clock-esc.hex 파일을 라이팅 하고싶은데요 프로그램은 AVR Stdio 4.16v을 이용하는데요 제가 구성한 방법은 칩 데이터시트를 보고 isp 커넥터 핀 번호에 맞게 브레드보드에 회로를 구성하고 usb isp와 연결했습니다. 그리고 스위치 1번을 켜서 컴퓨터 전원을 이용하였습니다. 브레드보드에는 전원이 연결되어있지않습니다. 그리고 제 컴퓨터는 windows 7 입니다. usb 드라이버도 7용으로 받아서 설치했습니다. 그런데 드라이버를 설치하고 나서 설치는 되었으나 서명이 되어있지않거나 다른 기능이 안된다고 나오더라고요 이 사이트에서 받았습니다. 아무튼 그래서 연결을 다 한 후에 프로그램을 켜서 라이팅을 하려고 하는데 칩과 usb isp, 컴퓨터 중에 먼가가 연결이 안&#46124;는지 commnds are not allowed dis........머라고 뜨면서 입력이 안됩니다 어떻게 해야나요?
관리자 답변 NEWTC · 2010-11-24
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 정확한 질문 내용이 아니라서 그렇지만 추정하여 보면, 아마도 USBISP 드라이버 설치가 제대로 되지 않은 것 같습니다. 확실하게 하시는 방법은 FAQ의 "WINDOWS7 64비트에서 USBISP V03 드라이버 설치하기"를 따라 하시는 것입니다. 윈도 7부터는 MS에서 공식 인증된 드라이버만 사용 가능하기 때문에 생기는 문제입니다. FAQ를 따라 하시면 문제가 없습니다. 하기 어려우시다면, 본사로 보내시거나, 본사로 방문하여 주시면 바로 해드립니다. - 아래 - http://www.newtc.co.kr/board/view.php?id=faq&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=41 그리고, 가능하면 앞으로는 질문 내용을 정확히 올려 주시면 감사하겠습니다. 질문이 정확하지 않으면 저희들도 소설 쓰듯이 추측하여 상상의 나래를 펴야 합니다. 다운로드 - USB-ISP 라이트 V03 타겟키트 - ( 자작하시것면 회로도 , 결선) 드라이버 정상 설치후 장치드라이버 연결상태 윈도우 7 의 32/64 비트 마지막으로 에러 그림 이미지를 올려주시면 됩니다. 수고하세요 >제가 이번에 AVR용 USB-ISP 라이트 V03(AD-USBISP V03-L)를 구매했는데요? >이걸 이용해서 AT89S51칩에다가 제가 짜놓은 se-clock-esc.hex 파일을 라이팅 하고싶은데요 >프로그램은 AVR Stdio 4.16v을 이용하는데요 > >제가 구성한 방법은 칩 데이터시트를 보고 isp 커넥터 핀 번호에 맞게 브레드보드에 회로를 구성하고 usb isp와 연결했습니다. 그리고 스위치 1번을 켜서 컴퓨터 전원을 이용하였습니다. >브레드보드에는 전원이 연결되어있지않습니다. >그리고 제 컴퓨터는 windows 7 입니다. >usb 드라이버도 7용으로 받아서 설치했습니다. 그런데 드라이버를 설치하고 나서 >설치는 되었으나 서명이 되어있지않거나 다른 기능이 안된다고 나오더라고요 이 사이트에서 받았습니다. >아무튼 그래서 연결을 다 한 후에 프로그램을 켜서 라이팅을 하려고 하는데 칩과 usb isp, 컴퓨터 >중에 먼가가 연결이 안&#46124;는지 commnds are not allowed dis........머라고 뜨면서 입력이 안됩니다 어떻게 해야나요?
5915 답변완료3축 가속도센서 질문. 민경만 2010-11-24 1,363
안녕하세요. 귀사에서 판매하는 3축 가속도 센서로 프로그래밍을 하고있는대요. 일단 c#으로 mega128에서 넘어오는 데이터로 그래프까지는 끝냈는데. 값이 조금 이상한점이 있어서 질문합니다. 먼저 z축의 제로값이 약 2.45v니깐 1024의 분해능으로 따져서 대략 500정도 나오는 것도 확인했습니다. 그럼데 이게 아무리 흔들어도 최고값인 1024를 안가지더군요. 생각해보니 가속도센서에서 3.3v레귤레이터를 쓰는 당연히 1024가 아니라 최대 670정도의 값을 갖게구나 싶은데 3dsensor 예제프로그램으로 돌려보니 초기값을 약 380정도 잡아도 현재값이 800을 넘는 값을 뿌려주더라고요. 그럼 이게 초기값이 380정도니깐 캘리브레이션 안해주면 1100을 넘는 값을 갖는거 아닌가요?? 그래서 혼란스러워서 질문드립니다... 예제프로그램이 잘못된건지 제가 데이터를 잘못 가공한건지.. 일단 계산은 하위바이트*256+상위바이트 하면 되는게 맞는거 같은데.. 그럼 수고하세요~
관리자 답변 NEWTC · 2010-11-24
안녕하세요 아래는 자이로센서의 ADC관련된 링크입니다. 가속도센서 ADC로 입력받는 부분이 같아 첨부합니다. http://www.newtc.co.kr/board/view.php?id=faq&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=42 2. 1024 분해능에서 1 변동할때의 전압값(Vref = 3.3V) : 3300mV / 1024 = 3.22265625mV * 참고적으로 1024 분해능에서 1 변동할때의 전압값(Vref = 5V) ( 0~5V 사이를 AD 하고, 실제로는 0~3.3V를 사용하므로, 분해능의 단계수를 다시 계산해야합니다. 즉, 3.3/(5/1024) = 675.84 단계 약 676 값이 3.3 볼트입니다. 0~3.3V의 값을 보려면, 0~676의 값으로 계산하면 됩니다. 1024 분해능에서 1 변동할때의 전압값(Vref = 5V) : 3300mV / 676 = 4.8816568mV ) Vref가 5볼일&#46468; 675값이 최대 입니다. 윈도우상 응용프로그램에서 넘는값이 나오는 이유는 다시 675값을 최대 1024단계로 환산하여 다시 풀리는것로 알고 있습니다. 수고하세요 >안녕하세요. > >귀사에서 판매하는 3축 가속도 센서로 프로그래밍을 하고있는대요. > >일단 c#으로 mega128에서 넘어오는 데이터로 그래프까지는 끝냈는데. > >값이 조금 이상한점이 있어서 질문합니다. > >먼저 z축의 제로값이 약 2.45v니깐 1024의 분해능으로 따져서 대략 500정도 나오는 것도 확인했습니다. > >그럼데 이게 아무리 흔들어도 최고값인 1024를 안가지더군요. > >생각해보니 가속도센서에서 3.3v레귤레이터를 쓰는 당연히 1024가 아니라 최대 670정도의 값을 > >갖게구나 싶은데 3dsensor 예제프로그램으로 돌려보니 > >초기값을 약 380정도 잡아도 현재값이 800을 넘는 값을 뿌려주더라고요. > >그럼 이게 초기값이 380정도니깐 캘리브레이션 안해주면 1100을 넘는 값을 갖는거 아닌가요?? > >그래서 혼란스러워서 질문드립니다... > >예제프로그램이 잘못된건지 제가 데이터를 잘못 가공한건지.. > >일단 계산은 하위바이트*256+상위바이트 하면 되는게 맞는거 같은데.. > >그럼 수고하세요~
5914 답변완료자이로 센서 질문입니다. 김재원 2010-11-24 1,451
안녕하세요. 뉴티씨에서 2축 자이로 모듈(AM-GYRO-XY V02)을 구입하여 사용하고 있는 설계 조원입니다. 뉴티씨에서 올린 자이로 센서 예제를 그대로 ATmega128에 코드비젼으로 라이팅하여 뉴티씨에서 올린 AM-AXIS(3D sensor.exe) 프로그램으로 확인을 하려고 하였으나 Please check COM6 is already open!! 이라고 메세지가 뜨고 connect가 되지 않았습니다. 시리얼 통신포트 설정은 Silicon Labs CP210x USB to UART Bridge(COM6)에 포트를 설정하고 Baud Rate는 115,200 bps로 하였고 Data Bit는 8bit, Stop Bit는 1, Flow Control은 None으로 하였습니다. 이 설정이 맞는지 확인하여 주십시오. 그리고 자이로 센서의 x-rate, y-rate, VREF 핀들이 ATmega128의 어느 핀들과 연결되어야 하는지, 그리고 UART통신으로 앞의 Silicon Labs CP210x USB to UART Bridge(COM6) 포트를 통하여 자이로 센서에서 ATmega128를 통하여 나오는 결과값을 보려고 하는데 예제 소스상으로는 D포트로 연결하는지 아니면 E포트로 연결하여 보는지 그리고 어느 핀에 Rx, Tx를 연결하는지 좀 알려주십시오. 자이로 센서로 지금 2주 동안 진행을 못하고 있는데 미치겠습니다. ㅜㅜ 제발 도와주세요 ㅜㅜ 밑의 예제 소스는 뉴티씨에서 올려주신 자이로 센서 예제 소스입니다. 이 예제 소스로 AM-AXIS(3D sensor.exe) 프로그램으로 자이로 결과를 확인할 수 있는지 궁금합니다. 어떻게 해야 확인할 수 있나요? 알려주십시오 ㅜㅜ //ICC-AVR application builder : 2005-05-23 오후 8:41:55 // Target : M128 // Crystal: 16Mhz #include <mega128.h> #include <delay.h> #include <string.h> #define BUFSIZE 10 #define STX 2 #define LEFT_BTN (PING>>3)&0x01 #define RIGHT_BTN (PING>>2)&0x01 #define OK 1 #define LOW 0 #define HIGH 1 volatile static unsigned char buf[BUFSIZE];// volatile unsigned int ch0, ch2, ch4; volatile unsigned char Start[2], X[2], Y[2], Z[2], flexLeft, flexRight; void port_init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //m103 output only DDRC = 0x00; PORTD = 0x00; DDRD = 0xff; PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; PORTG = 0x00; DDRG = 0x03; } void sys_init(void){ Start[0] = 0xff; Start[1] = 0xff; X[0]=X[1]=Y[0]=Y[1]=Z[0]=Z[1]=0; flexLeft=flexRight=0; } //UART0 initialize // desired baud rate: 115200 // actual: baud rate:111111 (3.7%) // char size: 8 bit // parity: Disabled void uart0_init(void) { UCSR0B = 0x00; //disable while setting baud rate UCSR0A = 0x00; UCSR0C = 0x06; UBRR0L = 0x08; //set baud rate lo // UBRR0H = 0x00; //set baud rate hi UCSR0B = 0x18; } void TX0_USART(unsigned char *dat,int len) { int i; for(i=0;i<len;i++) { while((UCSR0A & 0x20)==0x00); //UDR0 empty??? UDR0=dat[i]; } while((UCSR0A & 0x20)==0x00); //until translate, wait } // printf 함수 사용시 추가할 것. int putchar(char c) { while((UCSR0A & 0x20)==0x00); //UDR0 empty??? UDR0 = c; return c; } // scanf 함수 사용시 추가할 것. int getchar(void) { while ((UCSR0A & 0x80) == 0); return UDR0; } //call this routine to initialize all peripherals void init_devices(void){ //stop errant interrupts until set up //cli(); //disable all interrupts XDIV = 0x00; //xtal divider XMCRA = 0x00; //external memory port_init(); uart0_init(); MCUCR = 0x00; EICRA = 0x00; //extended ext ints EICRB = 0x00; //extended ext ints EIMSK = 0x00; TIMSK = 0x00; //timer interrupt sources ETIMSK = 0x00; //extended timer interrupt sources sys_init(); //sei(); //re-enable interrupts //all peripherals are now initialized } void delay(int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<600;j++); } } void get_adc_data(void) { unsigned int i; for(i=0;i<16;i++){ ADCSRA &= 0x7f; ADMUX = 0x40; ADCSRA |= 0xC0; Start[1] = Start[0] = buf[1] = buf[0] = 0xff; while((ADCSRA & 0x10) != 0x10); X[LOW] = buf[3] = ADCL; X[HIGH] = buf[2] = ADCH & 0x3f; // ch0 = buf[0]+buf[1]*256; ADCSRA &= 0x7f; ADMUX = 0x42; ADCSRA |= 0xC0; while((ADCSRA & 0x10) != 0x10); Y[0] = buf[5] = ADCL; Y[1] = buf[4] = ADCH & 0x3f; ADCSRA &= 0x7f; ADMUX = 0x44; ADCSRA |= 0xC0; while((ADCSRA & 0x10) != 0x10); Z[0] = buf[7] = ADCL; Z[1] = buf[6] = ADCH & 0x3f; } } void init_buf(void){ buf[8] = flexLeft = 0x00; buf[9] = flexRight = 0x00; } void main(){ int i; unsigned char send; unsigned char *str="\\r\\n\\r\\n3AXIS Test Program V02\\r\\n"; init_devices(); //printf("\\r\\n\\r\\n3AXIS Test Program V01\\r\\n"); TX0_USART(str,30); ADMUX = 0x00; // single-ended ADC3 ADCSRA = 0x86; // ADC enable, 125kHz while(1){ get_adc_data(); if(RIGHT_BTN == OK){ buf[9] = flexRight = 0xF0; }else{ buf[9] = flexRight = 0x00; } if(LEFT_BTN == OK){ buf[8] = flexLeft = 0xF0; }else{ buf[8] = flexLeft = 0x00; } for(i=0; i<(BUFSIZE); i++) { send = buf[i]; putchar(send); } PORTG ++; } }
관리자 답변 NEWTC · 2010-11-24
안녕하세요 Baud Rate 115,200 bps, Data Bit 8bit, Stop Bit 1, Flow Control None PE0(rx) PE1(tx) x-rate PORTF 0 y-rate PORTF 2 VREF 5V AM-AXIS-3D sensor.exe로 확인이 가능합니다. 수고하세요 >안녕하세요. 뉴티씨에서 2축 자이로 모듈(AM-GYRO-XY V02)을 구입하여 사용하고 있는 설계 조원입니다. > >뉴티씨에서 올린 자이로 센서 예제를 그대로 ATmega128에 코드비젼으로 라이팅하여 > >뉴티씨에서 올린 AM-AXIS(3D sensor.exe) 프로그램으로 확인을 하려고 하였으나 > >Please check COM6 is already open!! 이라고 메세지가 뜨고 connect가 되지 않았습니다. > >시리얼 통신포트 설정은 Silicon Labs CP210x USB to UART Bridge(COM6)에 포트를 설정하고 > >Baud Rate는 115,200 bps로 하였고 Data Bit는 8bit, Stop Bit는 1, Flow Control은 None으로 하였습니다. > >이 설정이 맞는지 확인하여 주십시오. 그리고 자이로 센서의 x-rate, y-rate, VREF 핀들이 ATmega128의 어느 핀들과 연결되어야 하는지, > >그리고 UART통신으로 앞의 Silicon Labs CP210x USB to UART Bridge(COM6) 포트를 통하여 자이로 센서에서 ATmega128를 통하여 나오는 결과값을 보려고 하는데 예제 소스상으로는 D포트로 연결하는지 아니면 E포트로 연결하여 보는지 그리고 어느 핀에 Rx, Tx를 연결하는지 좀 알려주십시오. > >자이로 센서로 지금 2주 동안 진행을 못하고 있는데 미치겠습니다. ㅜㅜ 제발 도와주세요 ㅜㅜ > > > >밑의 예제 소스는 뉴티씨에서 올려주신 자이로 센서 예제 소스입니다. > >이 예제 소스로 AM-AXIS(3D sensor.exe) 프로그램으로 자이로 결과를 확인할 수 있는지 궁금합니다. 어떻게 해야 확인할 수 있나요? 알려주십시오 ㅜㅜ > >//ICC-AVR application builder : 2005-05-23 오후 8:41:55 >// Target : M128 >// Crystal: 16Mhz > > >#include <mega128.h> >#include <delay.h> >#include <string.h> > > >#define BUFSIZE 10 >#define STX 2 > >#define LEFT_BTN (PING>>3)&0x01 >#define RIGHT_BTN (PING>>2)&0x01 >#define OK 1 > >#define LOW 0 >#define HIGH 1 > >volatile static unsigned char buf[BUFSIZE];// >volatile unsigned int ch0, ch2, ch4; >volatile unsigned char Start[2], X[2], Y[2], Z[2], flexLeft, flexRight; > > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0x00; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; //m103 output only > DDRC = 0x00; > PORTD = 0x00; > DDRD = 0xff; > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; > PORTG = 0x00; > DDRG = 0x03; >} > > >void sys_init(void){ > Start[0] = 0xff; > Start[1] = 0xff; > X[0]=X[1]=Y[0]=Y[1]=Z[0]=Z[1]=0; > flexLeft=flexRight=0; >} > >//UART0 initialize >// desired baud rate: 115200 >// actual: baud rate:111111 (3.7%) >// char size: 8 bit >// parity: Disabled > >void uart0_init(void) >{ > UCSR0B = 0x00; //disable while setting baud rate > UCSR0A = 0x00; > UCSR0C = 0x06; > UBRR0L = 0x08; //set baud rate lo // > UBRR0H = 0x00; //set baud rate hi > UCSR0B = 0x18; >} > >void TX0_USART(unsigned char *dat,int len) { > int i; > for(i=0;i<len;i++) { > while((UCSR0A & 0x20)==0x00); //UDR0 empty??? > UDR0=dat[i]; > } > while((UCSR0A & 0x20)==0x00); //until translate, wait >} > >// printf 함수 사용시 추가할 것. >int putchar(char c) >{ > while((UCSR0A & 0x20)==0x00); //UDR0 empty??? > > UDR0 = c; > return c; >} > >// scanf 함수 사용시 추가할 것. >int getchar(void) >{ > while ((UCSR0A & 0x80) == 0); > return UDR0; >} > >//call this routine to initialize all peripherals >void init_devices(void){ > //stop errant interrupts until set up > //cli(); //disable all interrupts > XDIV = 0x00; //xtal divider > XMCRA = 0x00; //external memory > port_init(); > uart0_init(); > > MCUCR = 0x00; > EICRA = 0x00; //extended ext ints > EICRB = 0x00; //extended ext ints > EIMSK = 0x00; > TIMSK = 0x00; //timer interrupt sources > ETIMSK = 0x00; //extended timer interrupt sources > sys_init(); > //sei(); //re-enable interrupts > //all peripherals are now initialized >} > >void delay(int n) >{ > volatile int i,j; > for(i=1;i<n;i++) > { > for(j=1;j<600;j++); > } >} > >void get_adc_data(void) >{ > unsigned int i; > > for(i=0;i<16;i++){ > ADCSRA &= 0x7f; > ADMUX = 0x40; > ADCSRA |= 0xC0; > > Start[1] = Start[0] = buf[1] = buf[0] = 0xff; > > while((ADCSRA & 0x10) != 0x10); > X[LOW] = buf[3] = ADCL; > X[HIGH] = buf[2] = ADCH & 0x3f; >// ch0 = buf[0]+buf[1]*256; > > ADCSRA &= 0x7f; > ADMUX = 0x42; > ADCSRA |= 0xC0; > > while((ADCSRA & 0x10) != 0x10); > Y[0] = buf[5] = ADCL; > Y[1] = buf[4] = ADCH & 0x3f; > > ADCSRA &= 0x7f; > ADMUX = 0x44; > ADCSRA |= 0xC0; > > while((ADCSRA & 0x10) != 0x10); > Z[0] = buf[7] = ADCL; > Z[1] = buf[6] = ADCH & 0x3f; > } >} > >void init_buf(void){ > buf[8] = flexLeft = 0x00; > buf[9] = flexRight = 0x00; >} > >void main(){ > > int i; > unsigned char send; > unsigned char *str="\\r\\n\\r\\n3AXIS Test Program V02\\r\\n"; > init_devices(); > //printf("\\r\\n\\r\\n3AXIS Test Program V01\\r\\n"); > TX0_USART(str,30); > ADMUX = 0x00; // single-ended ADC3 > ADCSRA = 0x86; // ADC enable, 125kHz > > while(1){ > get_adc_data(); > if(RIGHT_BTN == OK){ > buf[9] = flexRight = 0xF0; > }else{ > buf[9] = flexRight = 0x00; > } > if(LEFT_BTN == OK){ > buf[8] = flexLeft = 0xF0; > }else{ > buf[8] = flexLeft = 0x00; > } > > for(i=0; i<(BUFSIZE); i++) { > send = buf[i]; > putchar(send); > } > PORTG ++; > } >} >