로그인 | 회원가입 | 주문 조회
총 10,743개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
3993 답변완료uart의 연결과 정의가 헷갈림니다. 송희용 2009-11-06 1,322
뉴티씨사의 AB-M128-B모듈을 사용하여 프로젝트의 진행중에 있습니다. 이제 어느덧 센서에서 인체의 움직임이 감지되었을때 LCD에 상태를 표시하고 키패드의 비밀번호로 설정한 키를 맞게 누르면 센서의 작동이 멈추는 실내보안 시스템의 코딩을 모두 완성 하였습니다. 그런데 교수님께서 중간발표를 들으시고 더 나아가서 컴퓨터(PC)와의 데이터를 주고받는 것까지 해보라는 말씀을 들었습니다. 완전 초보인 저희는 이게 대체 먼말씀이신가 싶다가 혹시 uart라는 것을 활용해 현상태를 컴퓨터로 출력 혹은 입력 시키라는 말로 이해 되었습니다. 일단 유아트 핀을 봤더니 4개 핀으로 다행이 저희가 산 귀사의 usb라이트에 uart용 출력 핀이 함께 있는걸 확인했습니다. (역시 최고의 회사;;) 저희의 상황은 여기 까지고 이제 부터 질문 올리겠습니다. 1. 헷갈리는게 컴퓨터와의 데이터를 avr이 주고 받으려면 단순히 usb라이트의 uart용 핀과 avr 메인 기판의 uart0 혹은 1에 꼽고 usb는 컴퓨터와 연결해서 이용하면 되는건지 궁금합니다. 2.만약 맞다면 uart기술을 도전하기 위해 저희가 추가적으로 준비해야될게 usb-L과 avr uart핀을 연결할 4개핀용 커넥터만 있으면 되는지 역시 궁금합니다. 3. 그리고 본 홈페이지 제품 소개에 궁금한 문구가 있어 그림도 첨부했습니다 이쯤에서 그림을 확인해 주시면 "AB-M128-B와 연결하여 통신하는 사진" 이라는 사진설명 문구가있습니다. 이게 컴퓨터 PC와 유선통신을 의미하는 문구인지 무선통신을 의미하는 문구인지 궁금합니다.
관리자 답변 N.T.C · 2009-11-06
안녕하세요 1. 가능합니다. 2. 그렇습니다. 3. 전부 선으로 구성 돼어 있어 유선 통신이죠; 감사합니다. >뉴티씨사의 AB-M128-B모듈을 사용하여 프로젝트의 진행중에 있습니다. > >이제 어느덧 센서에서 인체의 움직임이 감지되었을때 LCD에 상태를 표시하고 키패드의 비밀번호로 설정한 키를 맞게 누르면 센서의 작동이 멈추는 실내보안 시스템의 코딩을 모두 완성 하였습니다. > >그런데 교수님께서 중간발표를 들으시고 더 나아가서 컴퓨터(PC)와의 데이터를 주고받는 것까지 해보라는 말씀을 들었습니다. > >완전 초보인 저희는 이게 대체 먼말씀이신가 싶다가 혹시 uart라는 것을 활용해 현상태를 컴퓨터로 출력 혹은 입력 시키라는 말로 이해 되었습니다. > >일단 유아트 핀을 봤더니 4개 핀으로 다행이 저희가 산 귀사의 usb라이트에 uart용 출력 핀이 함께 있는걸 확인했습니다. (역시 최고의 회사;;) > >저희의 상황은 여기 까지고 이제 부터 질문 올리겠습니다. > >1. 헷갈리는게 컴퓨터와의 데이터를 avr이 주고 받으려면 단순히 usb라이트의 uart용 핀과 avr 메인 기판의 uart0 혹은 1에 꼽고 usb는 컴퓨터와 연결해서 이용하면 되는건지 궁금합니다. > >2.만약 맞다면 uart기술을 도전하기 위해 저희가 추가적으로 준비해야될게 usb-L과 avr uart핀을 연결할 4개핀용 커넥터만 있으면 되는지 역시 궁금합니다. > >3. 그리고 본 홈페이지 제품 소개에 궁금한 문구가 있어 그림도 첨부했습니다 이쯤에서 그림을 확인해 주시면 > "AB-M128-B와 연결하여 통신하는 사진" 이라는 사진설명 문구가있습니다. >이게 컴퓨터 PC와 유선통신을 의미하는 문구인지 무선통신을 의미하는 문구인지 궁금합니다. > > > >
3992 답변완료USB ISP V03 에 UART사용법 문의 임체규 2009-11-06 1,356
안녕하세요 이번에 ATmega128 작업을 하게 된 초보자 입니다. 다름이 아니라 M128PRO-A개발 보드와 USBISP V03을 같이 사용하고 있는데, 6핀을 이용해서 코드비전을 통해 아트메가에 데이터를 넣을때는 USBISP V03에서 노란불인지 녹색불인지 깜빡깜빡 거리면서 잘 되는 것으로 보입니다. 코딩을 넣은 것을 확인하려고 UART0에 USBISP V03을 4핀으로 교체하고 사용하면 빨간불만 깜빡 깜빡 켜집니다. 데이터 시트를 보면 연결이 안되어있거나 타겟의 전원이 꺼져있다고 하는데 USB에서 들어간 전원으로 보드에 POWER에는 불이 들어옵니다. 책을 통해서 얻은 다음과 같은 소스를 사용했습니다. #include <mega128.h> #include <delay.h> #include <string.h> #include <stdio.h> void Putch(char); void main(void) { //전송문자열 char string[]="this is USART0 control program"; char *pStr; // USART 초기화 DDRE = 0xFE; UCSR0A = 0x0; UCSR0B = 0b00001000l; //인터럽드 다 0, 송신 가능 1 UCSR0C = 0b000000110; //비동기 데이터 8 UBRR0H = 0; UBRR0L = 103; //fosc 16mhz, 9600bps pStr = string; while(*pStr) Putch(*pStr++); while(1); } void Putch(char data) { while(!(UCSR0A & 0x20)); UDR0 = data; } 컴파일시 에러는 없었습니다. 아 그리고 포트설정을 2번으로 하여서 다운로드 시에 2번활용후 하이퍼 터미널 사용시 다운로드 포트를 옮기고 하이퍼터미널 설정을 2번으로 해서 작업을 수행했습니다. 사용법에 문제가 발생했는지, 아니면 장비에 문제가 있는지 알고 싶습니다. 감사합니다.
관리자 답변 N.T.C · 2009-11-06
안녕하세요 먼저 질문요령에 대해 한번 읽어보신후 다신 질문 해주시길 바랍니다. 감사합니다. >안녕하세요 이번에 ATmega128 작업을 하게 된 초보자 입니다. > >다름이 아니라 M128PRO-A개발 보드와 USBISP V03을 같이 사용하고 있는데, 6핀을 이용해서 >코드비전을 통해 아트메가에 데이터를 넣을때는 USBISP V03에서 노란불인지 녹색불인지 깜빡깜빡 거리면서 잘 되는 것으로 보입니다. > 코딩을 넣은 것을 확인하려고 UART0에 USBISP V03을 4핀으로 교체하고 사용하면 빨간불만 깜빡 >깜빡 켜집니다. 데이터 시트를 보면 연결이 안되어있거나 타겟의 전원이 꺼져있다고 하는데 USB에서 들어간 전원으로 보드에 POWER에는 불이 들어옵니다. > > >책을 통해서 얻은 다음과 같은 소스를 사용했습니다. >#include <mega128.h> >#include <delay.h> >#include <string.h> >#include <stdio.h> >void Putch(char); > >void main(void) >{ > //전송문자열 > char string[]="this is USART0 control program"; > char *pStr; > > // USART 초기화 > DDRE = 0xFE; > UCSR0A = 0x0; > UCSR0B = 0b00001000l; //인터럽드 다 0, 송신 가능 1 > UCSR0C = 0b000000110; //비동기 데이터 8 > UBRR0H = 0; > UBRR0L = 103; //fosc 16mhz, 9600bps > > pStr = string; > while(*pStr) Putch(*pStr++); > > while(1); >} > >void Putch(char data) >{ > while(!(UCSR0A & 0x20)); > UDR0 = data; >} > >컴파일시 에러는 없었습니다. 아 그리고 포트설정을 2번으로 하여서 다운로드 시에 2번활용후 하이퍼 터미널 사용시 다운로드 포트를 옮기고 하이퍼터미널 설정을 2번으로 해서 작업을 수행했습니다. > >사용법에 문제가 발생했는지, 아니면 장비에 문제가 있는지 알고 싶습니다. >감사합니다.
3991 답변완료예제파일을 분석중인데 모르는 부분이있어서요. 김현준 2009-11-06 1,393
뉴티씨에서 128개발보드를 사서 서브모터 제어를 하는데 servo_num = servo_num % MAX_SERVO_COUNT; ex_servo_motor.c파일에서 이부분인데 MAX_SERVO_COUNT 이건 8로 정의되는데 servo_num은 int로 지정되어있구 0이란 소리는없는데 그냥 0으로 부터 시작되는건가요? 그리고 %라는게 무슨의미인지 모르겠네요 ㅠㅠ... 그때 직접찾아뵙는다고했는데.. 그래도 기본적인거 더 연구하고 가야 큰 도움이될거같아서요 ㅠㅠ
관리자 답변 N.T.C · 2009-11-06
안녕하세요 %? 뭘 뜻한는것냐 하면 보통 소수점 아래값을 볼때 사용합니다. 예로 if ( i % 2 ) printf ( "홀수=%d",i ) else printf ( "짝수=%d",i ) 이런씩으로 사용 하는용도 입니다. 감사합니다. >뉴티씨에서 128개발보드를 사서 서브모터 제어를 하는데 > > servo_num = servo_num % MAX_SERVO_COUNT; > >ex_servo_motor.c파일에서 이부분인데 > > MAX_SERVO_COUNT 이건 8로 정의되는데 servo_num은 int로 지정되어있구 > >0이란 소리는없는데 그냥 0으로 부터 시작되는건가요? > >그리고 %라는게 무슨의미인지 모르겠네요 ㅠㅠ... > >그때 직접찾아뵙는다고했는데.. 그래도 기본적인거 더 연구하고 가야 큰 도움이될거같아서요 > >ㅠㅠ
3990 답변완료인터럽트 시그널에 대해... 손선호 2009-11-06 1,422
안녕하세요~ 이렇게 또 여쭙는 글을 쓰네요..ㅠ 다름이 아니라 제가 AT90USB162라는 칩을 써서 프로그램을 짜고 있는데용 ㅠㅠ 귀사 제품이 아니라도 비빌곳이 여기뿐인지라..ㅠㅠ 컴파일러는 avr-GCC사용하구요..ㅠ 보통ATmega128에서는 UART rx isr을 정의할때 SIGNAL(SIG_UART0_RECV){ } 이렇게 하잖아요?!ㅜㅜ 근데 at90usb162에서 저대로 해봤더니 ../main.c:110: warning: 'SIG_UART0_RECV' appears to be a misspelled signal handler 이렇게 뜨네요 ㅠ 어떻게 써야 할지 몰라서 답답한 마음에 한번 여쭈어 봅니다 ㅠ
관리자 답변 N.T.C · 2009-11-06
안녕하세요 저희는 gcc 컴파일러를 지원안합니다. 아는 정도만 말씀드리면 에러가 인터럽터 핸들러 벡터가 틀리것 같습니다. 'SIG_UART0_RECV' 저 명칭이 아니것같습니다. AT90USB162 헤더 파일이나 인터럽터 헤더 파일 안에 핸드러 백터에 관련된 문장? 즉 디파인된 문구가 있습니다. 그것로 바꾸셔야합니다. 감사합니다. >안녕하세요~ >이렇게 또 여쭙는 글을 쓰네요..ㅠ >다름이 아니라 >제가 AT90USB162라는 칩을 써서 프로그램을 짜고 있는데용 ㅠㅠ >귀사 제품이 아니라도 비빌곳이 여기뿐인지라..ㅠㅠ >컴파일러는 avr-GCC사용하구요..ㅠ > >보통ATmega128에서는 UART rx isr을 정의할때 > >SIGNAL(SIG_UART0_RECV){ > >} > >이렇게 하잖아요?!ㅜㅜ > >근데 at90usb162에서 저대로 해봤더니 > >../main.c:110: warning: 'SIG_UART0_RECV' appears to be a misspelled signal handler > >이렇게 뜨네요 ㅠ > >어떻게 써야 할지 몰라서 답답한 마음에 한번 여쭈어 봅니다 ㅠ >
3989 답변완료AM-PB04-B구매후 동작 관련 질문 김정현 2009-11-06 1,288
1.AM-PB04-B 릴레이보드 컨트롤 신호연결시 두모듈의 GND핀도 상호 연결을 해야하나요? 2.컨트롤 신호를 보낼 모듈은 Chipcon사 cc2420db입니다. 외부 확장 핀은 3.3V 입&#8729;출력 전압 규격입니다. 컨트롤 신호보내면 릴레이보드와 상호연동에 문제 는 없습니까??
관리자 답변 N.T.C · 2009-11-06
안녕하세요 1. 보드와 보드를 연결시 신호선의 기준전위 때문에 gnd를 같이 연결하세야 합니다. 2. 문제는 없어 보입니다. 감사합니다. >1.AM-PB04-B 릴레이보드 컨트롤 신호연결시 두모듈의 GND핀도 상호 연결을 해야하나요? > >2.컨트롤 신호를 보낼 모듈은 Chipcon사 cc2420db입니다. > 외부 확장 핀은 3.3V 입&#8729;출력 전압 규격입니다. 컨트롤 신호보내면 릴레이보드와 상호연동에 > 문제 는 없습니까??
3988 답변완료타이머 질문드립니다!!! 이경섭 2009-11-05 1,416
타이머 설정할때 정해주는 desired value는 어떻게 쓰이는 건가요??? Crystal 이랑은 어떻게 다른거에요???
관리자 답변 N.T.C · 2009-11-06
안녕하세요? 고객님, 원하시는 타이밍을 말하는 것인데, 실제로는 약간 차이가 날 수 있습니다. 그래서, 원하는 타이밍과 실제 타이밍과의 차이가 나게 되면, 컴파일러에서 마법사로 코드 생성시에 그 오차율을 알려 줍니다. 수고하세요. >타이머 설정할때 정해주는 > >desired value는 어떻게 쓰이는 건가요??? > >Crystal 이랑은 어떻게 다른거에요???
3987 답변완료FB755AC 수리 문의드립니다. 김경초 2009-11-05 1,323
귀사의 FB755AC 블루투스 모듈을 사용하고 있습니다. 그런데 모듈 부품들중 노란색 소자 (4754 30424) 아마도 커패시터 같은데요. 그 소자가 떨어졌습니다. 어떻게 수리할 수 있을지 문의드립니다. 수고하십시오.
관리자 답변 N.T.C · 2009-11-06
안녕하세요 저희는 블루투스를 생산 판매하는 제품이 없습니다. 한번 알아보시길 바랍니다. 펌테크 제품이 아닌가 싶네요. 감사힙니다. >귀사의 FB755AC 블루투스 모듈을 사용하고 있습니다. > >그런데 모듈 부품들중 노란색 소자 (4754 30424) 아마도 커패시터 같은데요. > >그 소자가 떨어졌습니다. > >어떻게 수리할 수 있을지 문의드립니다. > >수고하십시오.
3986 답변완료안녕하세요...Atmega128 질문드립니다. 이지원 2009-11-05 1,471
Atmega128을 이용해서 제공해 주신 여러가지 소스를 시도해보고 출력도 얻었습니다. 이제 뭔가 시도해보려고 하는데... 갑자기 잘 되던 atmega128이 작동을 제대로 안하고 이상하게 작동합니다. 떨어뜨린 적도 없고, 특별히 이상징후를 본 적도 없습니다. AVR의 어느 부분을 체크 할 필요가 있을까요? 아님 A/S를 받아야 하나요? 아님 초기화하는 방법이 따로 있나요? 답변 부탁드립니다.
관리자 답변 N.T.C · 2009-11-06
안녕하세요 무조건 이상하다고 그러시면 저희도 잘 모릅니다. 한번 a/s 를 한번 받아 보시길 권장합니다. 감사합니다. >Atmega128을 이용해서 제공해 주신 여러가지 소스를 시도해보고 출력도 얻었습니다. > >이제 뭔가 시도해보려고 하는데... > >갑자기 잘 되던 atmega128이 작동을 제대로 안하고 이상하게 작동합니다. > >떨어뜨린 적도 없고, 특별히 이상징후를 본 적도 없습니다. > >AVR의 어느 부분을 체크 할 필요가 있을까요? > >아님 A/S를 받아야 하나요? > >아님 초기화하는 방법이 따로 있나요? > >답변 부탁드립니다.
3985 답변완료전원연결부 커넥터 모델명 질문있습니다. 장장호 2009-11-05 1,326
오늘 제품 잘 받았습니다. 빠진거 없이 잘 왔습니다. 1) AB-M128PRO-A의 12v 전원입력부 단자의 모델명을 알고 싶습니다.(동그란 단자) 2) 그리고 보드의 각 a~f 포트의 커넥터의 모델명도 알고 싶습니다. 몰렉스 커넥터인것같은데 인터넷에서 쉽게 찾아지질 않네요 혹시 오프라인매장에서 살수 있는지도 알려주실수 있을까요. ^^
관리자 답변 N.T.C · 2009-11-06
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 답변 드릴께요. 1) Adapter Jack DC-005 2파이 입니다. 2) BHS-01-10P 라는 제품이구요. 보통, 10핀 박스헤더 커넥터라고 말하면 오프라인에서 구매 가능합니다. 용산 전자랜드 광장층의 에스와이 전자에서도 구매 가능합니다. http://www.eleparts.co.kr/front/productdetail.php?productcode=004001003000003452&sort= 에 가면 구매하실 수 있습니다. 감사합니다. >오늘 제품 잘 받았습니다. 빠진거 없이 잘 왔습니다. > >1) AB-M128PRO-A의 12v 전원입력부 단자의 모델명을 알고 싶습니다.(동그란 단자) > > >2) 그리고 보드의 각 a~f 포트의 커넥터의 모델명도 알고 싶습니다. > >몰렉스 커넥터인것같은데 인터넷에서 쉽게 찾아지질 않네요 > >혹시 오프라인매장에서 살수 있는지도 알려주실수 있을까요. ^^
3984 답변완료pc로부터 신호를 받아 스텝모터를 돌릴려면 여승언 2009-11-05 1,405
안녕하세요 관리자님 또 질문드리네요^^; 답변을 잘 해주셔서 항상 감사하게 생각합니다. 다름이 아니오라 저희가 스텝모터 를 두개 돌리는데 아래와 같은 소스를 짰습니다. 기본소스는 뉴티시 자료실에 AM-MS2를 이용한 스텝모터 구동을 참고 했고요.. 현재 저희 생각데로 모터가 움직이긴 하는데요 문제는 저희 모터가 수동적으로 도는게 아니고, PC로 부터 신호를 받아 능동적으로 움직여야 하는데요. 그래서 RS-232C를 이용하여 atmega에 uart0 부분과 pc를 연결시키고 신호를 받으면서 스텝모터를 돌리기 위해 노력중인데.. 여기서 계속 막히네요..... 신호를 받아오는 부분이 참.. 어렵군요 ㅜㅜ 어떻게 하면 pc로부터 신호를 받아 모터를 돌릴수 있을까요 아래는 소스입니다. /* 마이크로 스텝드라이버 구동 소스 포트 연결 Enable : PORTC 7번핀 Mode1 : PORTC 5번핀 Mode0 : PORTC 4번핀 RIGHT_DIR : PORTC 3번핀 RIGHT_CLK : PORTC 2번핀 LEFT_DIR : PORTC 1번핀 LEFT_CLK : PORTC 0번핀 */ #include <iom128v.h> //헤더파일 #include <macros.h> #include <stdio.h> //sprintf 를 사용하기 위한 헤더파일 #define MOTOR_PORT PORTC // 스테핑 모터 연결 포트 //포트 C를 이용하여 스텝모터를 구동하기 위한 포트 선언 #define MOTOR_PORT_DDR DDRC // 스테핑 모터 연결 포트의 DDR REG //포트 C를 출력하기 위한 방향설정 #define swich 1 #define MOTOR_ENABLE (MOTOR_PORT = MOTOR_PORT|0x80) #define MOTOR_DISABLE (MOTOR_PORT = MOTOR_PORT&0x7f) #define MOTOR_STEP_M0 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x00) //11(00)1111 LL #define MOTOR_STEP_M1 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x10) //11(01)1111 LH #define MOTOR_STEP_M2 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x20) //11(10)1111 HL #define MOTOR_STEP_M3 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x30) //11(11)1111 HH #define MOTOR_LEFT_CLK (MOTOR_PORT = MOTOR_PORT^0x01) #define MOTOR_RIGHT_CLK (MOTOR_PORT = MOTOR_PORT^0x04) #define MOTOR_LEFT_CW (MOTOR_PORT = MOTOR_PORT&0xfd) //0=시계방향 #define MOTOR_LEFT_CCW (MOTOR_PORT = MOTOR_PORT|0x02) //1=반시계방향 #define MOTOR_RIGHT_CW (MOTOR_PORT = MOTOR_PORT&0xf7) //0=시계방향 #define MOTOR_RIGHT_CCW (MOTOR_PORT = MOTOR_PORT|0x08) //1=반시계방향 //한개의 문자를 수신 한다 unsigned char pstr; /* main-----------------------------------*/ void main(void) { init_devices(); //insert your functional code here... printf(" \\n\\n\\rStepping Motor test program...\\n\\r"); //printf(" \\n\\n\\rStepping Motor test go...\\n\\r"); MOTOR_PORT_DDR = 0xff; //getchar(); //MOTOR_ENABLE; //MOTOR_DISABLE; MOTOR_STEP_M0; //M0로갈수록 정밀하게 제어는 가능하지만모터가한바퀴도는데 필요한클럭은많아진다.? //MOTOR_LEFT_CW; // MOTOR_RIGHT_CW; //cw 정방향(시계방향) ccw 역방향(반시계방향) //getchar(); //PORTA = 0x00; //DDRA = 0xff; // /* 딜레이로 마이크로 스텝 드라이버 구동 */ while(1){ //PORTG++; // PORTA = pstr; // PORTC = pstr; switch(swich) { case 1: MOTOR_ENABLE; MOTOR_LEFT_CW; //MOTOR_LEFT=X축 MOTOR_RIGHT_CW; //MOTOR_RIGHT=Y축 //MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); break; case 2: MOTOR_ENABLE; MOTOR_LEFT_CW; MOTOR_RIGHT_CCW; //MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); break; case 3: MOTOR_ENABLE; MOTOR_LEFT_CW; MOTOR_RIGHT_CW; MOTOR_LEFT_CLK; //MOTOR_RIGHT_CLK; delay(2); break; case 4: MOTOR_ENABLE; MOTOR_LEFT_CCW; MOTOR_RIGHT_CCW; MOTOR_LEFT_CLK; //MOTOR_RIGHT_CLK; delay(2); break; case 5: MOTOR_ENABLE; MOTOR_LEFT_CW; MOTOR_RIGHT_CW; MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); break; case 6: MOTOR_ENABLE; MOTOR_LEFT_CW; MOTOR_RIGHT_CCW; MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); break; case 7: MOTOR_ENABLE; MOTOR_LEFT_CCW; MOTOR_RIGHT_CW; MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); break; case 8: MOTOR_ENABLE; MOTOR_LEFT_CCW; MOTOR_RIGHT_CCW; MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); break; default: MOTOR_DISABLE; break; } /* if(swich==1) { MOTOR_LEFT_CW; //MOTOR_LEFT=X축 MOTOR_RIGHT_CW; //MOTOR_RIGHT=Y축 } if(swich==2) { MOTOR_LEFT_CW; MOTOR_RIGHT_CCW; } if(swich==3) { MOTOR_LEFT_CCW; MOTOR_RIGHT_CW; } if(swich==4) { MOTOR_LEFT_CCW; MOTOR_RIGHT_CCW; } */ /*MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); */ } } void port_init(void) { PORTA = 0x00; DDRA = 0xff; //PORTB = 0x00; //DDRB = 0x00; PORTC = 0x00; DDRC = 0xff; //C포트로 스텝모터구동 //PORTD = 0x00; //DDRD = 0xff; //PORTE = 0x00; //DDRE = 0x00; //PORTF = 0x00; //DDRF = 0x00; //PORTG = 0x00; //DDRG = 0x03; } // 통신을 위한 레지스터 선언 // UART0 초기화 // desired baud rate: 9600 이론값 // actual: baud rate:9615 (0.2%) 실제값 ,baud rate=1초당 전송되는 변조된신호의수 // char size: 8 bit,데이터비트는 8비트임 // parity: Disabled(사용안함) void uart0_init(void) { UCSR0B = 0x00; //송수신 등 모든 서비스를 일단 정지시킴 UCSR0A = 0x00; UCSR0C = 0x06; //0b00000110 비동기데이터8비트모드 UBRR0L = 0x67; //set baud rate lo UBRR0H = 0x00; //set baud rate hi UCSR0B = 0x18; } //call this routine to initialize all peripherals // 전체 장치를 위한 레지스터 설정 부분 void init_devices(void) //init함수는 초기화 { //stop errant(잘못된) interrupts until set up CLI(); //disable all interrupts XDIV = 0x00; //xtal divider,크리스탈 XMCRA = 0x00; //external memory port_init(); //포트에 대한 초기화 선언 //uart0_init(); //시리얼통신에 대한 초기화 선언 MCUCR = 0x00; //외부메모리를쓰지않는다 ,MCUCR=0X80이면 외부메모리를 쓴다 EICRA = 0x00; //extended ext ints EICRB = 0x00; //extended ext ints EIMSK = 0x00; // TIMSK = 0x40; //timer interrupt sources ETIMSK = 0x04; //extended timer interrupt sources SEI(); //re-enable interrupts, Global Interrupt Enable(Set Interrupt)명령 //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++); } } //송수신 프로그램 //printf함수에서 사용할 putchar에 uart0와uart1에 데이터를 보내도록 하였음 int putchar(char c)//printf함수 사용시 추가할것 { while (((UCSR0A>>UDRE0)&0x01) == 0) ; //UDRE, data register empty UDR0 = c; return c; } int getchar(void) //scanf함수 사용시 추가할것 { while ((UCSR0A & 0x80) == 0); return UDR0; }
관리자 답변 N.T.C · 2009-11-06
안녕하세요 코드 수정 해드릴지 않습니다. uart와 모터를 따로 동작시켜야 합니다. 즉 uart수신 인터럽터를 만들어 버퍼에 채우시고 메인루틴에 가끔씩 버퍼를 읽어 매칭시키시면 됩니다. 그러면 모터랑 별개로 통신이 가능합니다. 감사합니다. >안녕하세요 관리자님 또 질문드리네요^^; >답변을 잘 해주셔서 항상 감사하게 생각합니다. 다름이 아니오라 > >저희가 스텝모터 를 두개 돌리는데 아래와 같은 소스를 짰습니다. 기본소스는 뉴티시 자료실에 >AM-MS2를 이용한 스텝모터 구동을 참고 했고요.. 현재 저희 생각데로 모터가 움직이긴 하는데요 >문제는 저희 모터가 수동적으로 도는게 아니고, PC로 부터 신호를 받아 능동적으로 움직여야 하는데요. 그래서 RS-232C를 이용하여 atmega에 uart0 부분과 pc를 연결시키고 신호를 받으면서 스텝모터를 돌리기 위해 노력중인데.. 여기서 계속 막히네요..... >신호를 받아오는 부분이 참.. 어렵군요 ㅜㅜ 어떻게 하면 pc로부터 신호를 받아 모터를 돌릴수 있을까요 > >아래는 소스입니다. > > >/* > 마이크로 스텝드라이버 구동 소스 > 포트 연결 > Enable : PORTC 7번핀 > Mode1 : PORTC 5번핀 > Mode0 : PORTC 4번핀 > RIGHT_DIR : PORTC 3번핀 > RIGHT_CLK : PORTC 2번핀 > LEFT_DIR : PORTC 1번핀 > LEFT_CLK : PORTC 0번핀 >*/ > >#include <iom128v.h> //헤더파일 >#include <macros.h> >#include <stdio.h> //sprintf 를 사용하기 위한 헤더파일 > >#define MOTOR_PORT PORTC // 스테핑 모터 연결 포트 >//포트 C를 이용하여 스텝모터를 구동하기 위한 포트 선언 >#define MOTOR_PORT_DDR DDRC // 스테핑 모터 연결 포트의 DDR REG >//포트 C를 출력하기 위한 방향설정 > >#define swich 1 >#define MOTOR_ENABLE (MOTOR_PORT = MOTOR_PORT|0x80) >#define MOTOR_DISABLE (MOTOR_PORT = MOTOR_PORT&0x7f) >#define MOTOR_STEP_M0 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x00) //11(00)1111 LL >#define MOTOR_STEP_M1 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x10) //11(01)1111 LH >#define MOTOR_STEP_M2 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x20) //11(10)1111 HL >#define MOTOR_STEP_M3 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x30) //11(11)1111 HH >#define MOTOR_LEFT_CLK (MOTOR_PORT = MOTOR_PORT^0x01) >#define MOTOR_RIGHT_CLK (MOTOR_PORT = MOTOR_PORT^0x04) >#define MOTOR_LEFT_CW (MOTOR_PORT = MOTOR_PORT&0xfd) //0=시계방향 >#define MOTOR_LEFT_CCW (MOTOR_PORT = MOTOR_PORT|0x02) //1=반시계방향 >#define MOTOR_RIGHT_CW (MOTOR_PORT = MOTOR_PORT&0xf7) //0=시계방향 >#define MOTOR_RIGHT_CCW (MOTOR_PORT = MOTOR_PORT|0x08) //1=반시계방향 > >//한개의 문자를 수신 한다 >unsigned char pstr; > > >/* main-----------------------------------*/ >void main(void) >{ > > init_devices(); > //insert your functional code here... > printf(" \\n\\n\\rStepping Motor test program...\\n\\r"); > //printf(" \\n\\n\\rStepping Motor test go...\\n\\r"); > > MOTOR_PORT_DDR = 0xff; > //getchar(); > > //MOTOR_ENABLE; > //MOTOR_DISABLE; > MOTOR_STEP_M0; //M0로갈수록 정밀하게 제어는 가능하지만모터가한바퀴도는데 필요한클럭은많아진다.? > //MOTOR_LEFT_CW; > // MOTOR_RIGHT_CW; >//cw 정방향(시계방향) ccw 역방향(반시계방향) > //getchar(); > //PORTA = 0x00; > //DDRA = 0xff; >// > /* 딜레이로 마이크로 스텝 드라이버 구동 */ > while(1){ > //PORTG++; > > > > // PORTA = pstr; > // PORTC = pstr; > > > > switch(swich) > { > case 1: > MOTOR_ENABLE; > MOTOR_LEFT_CW; //MOTOR_LEFT=X축 > MOTOR_RIGHT_CW; //MOTOR_RIGHT=Y축 > //MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > break; > > case 2: > MOTOR_ENABLE; > MOTOR_LEFT_CW; > MOTOR_RIGHT_CCW; > //MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > break; > > case 3: > MOTOR_ENABLE; > MOTOR_LEFT_CW; > MOTOR_RIGHT_CW; > MOTOR_LEFT_CLK; > //MOTOR_RIGHT_CLK; > delay(2); > break; > > case 4: > MOTOR_ENABLE; > MOTOR_LEFT_CCW; > MOTOR_RIGHT_CCW; > MOTOR_LEFT_CLK; > //MOTOR_RIGHT_CLK; > delay(2); > break; > > case 5: > MOTOR_ENABLE; > MOTOR_LEFT_CW; > MOTOR_RIGHT_CW; > MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > break; > > case 6: > MOTOR_ENABLE; > MOTOR_LEFT_CW; > MOTOR_RIGHT_CCW; > MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > break; > > case 7: > MOTOR_ENABLE; > MOTOR_LEFT_CCW; > MOTOR_RIGHT_CW; > MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > break; > > case 8: > MOTOR_ENABLE; > MOTOR_LEFT_CCW; > MOTOR_RIGHT_CCW; > MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > break; > > > default: > MOTOR_DISABLE; > break; > } > > /* > if(swich==1) > { > MOTOR_LEFT_CW; //MOTOR_LEFT=X축 > MOTOR_RIGHT_CW; //MOTOR_RIGHT=Y축 > } > > if(swich==2) > { > MOTOR_LEFT_CW; > MOTOR_RIGHT_CCW; > } > > if(swich==3) > { > MOTOR_LEFT_CCW; > MOTOR_RIGHT_CW; > } > > if(swich==4) > { > MOTOR_LEFT_CCW; > MOTOR_RIGHT_CCW; > } > */ > > > /*MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > */ > } > >} > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0xff; > //PORTB = 0x00; > //DDRB = 0x00; > PORTC = 0x00; > DDRC = 0xff; //C포트로 스텝모터구동 > //PORTD = 0x00; > //DDRD = 0xff; > //PORTE = 0x00; > //DDRE = 0x00; > //PORTF = 0x00; > //DDRF = 0x00; > //PORTG = 0x00; > //DDRG = 0x03; >} > >// 통신을 위한 레지스터 선언 >// UART0 초기화 >// desired baud rate: 9600 이론값 >// actual: baud rate:9615 (0.2%) 실제값 ,baud rate=1초당 전송되는 변조된신호의수 >// char size: 8 bit,데이터비트는 8비트임 >// parity: Disabled(사용안함) > >void uart0_init(void) >{ > > UCSR0B = 0x00; //송수신 등 모든 서비스를 일단 정지시킴 > UCSR0A = 0x00; > UCSR0C = 0x06; //0b00000110 비동기데이터8비트모드 > UBRR0L = 0x67; //set baud rate lo > UBRR0H = 0x00; //set baud rate hi > UCSR0B = 0x18; > >} > > >//call this routine to initialize all peripherals >// 전체 장치를 위한 레지스터 설정 부분 >void init_devices(void) //init함수는 초기화 >{ > //stop errant(잘못된) interrupts until set up > CLI(); //disable all interrupts > XDIV = 0x00; //xtal divider,크리스탈 > XMCRA = 0x00; //external memory > > port_init(); //포트에 대한 초기화 선언 > //uart0_init(); //시리얼통신에 대한 초기화 선언 > > MCUCR = 0x00; //외부메모리를쓰지않는다 ,MCUCR=0X80이면 외부메모리를 쓴다 > EICRA = 0x00; //extended ext ints > EICRB = 0x00; //extended ext ints > EIMSK = 0x00; // > TIMSK = 0x40; //timer interrupt sources > ETIMSK = 0x04; //extended timer interrupt sources > SEI(); //re-enable interrupts, Global Interrupt Enable(Set Interrupt)명령 > //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++); > } >} > >//송수신 프로그램 >//printf함수에서 사용할 putchar에 uart0와uart1에 데이터를 보내도록 하였음 > >int putchar(char c)//printf함수 사용시 추가할것 >{ > while (((UCSR0A>>UDRE0)&0x01) == 0) ; //UDRE, data register empty > > UDR0 = c; > return c; >} > >int getchar(void) //scanf함수 사용시 추가할것 >{ > while ((UCSR0A & 0x80) == 0); > return UDR0; >}
3983 답변완료라인트레이서 관련 문의 민준기 2009-11-05 1,408
근래에 KR-DL 16 모델의 라인트레이서를 구매했습니다. 완제품이구요. 프로그램 입력 과정에서..... AVR 프로그램을 실행해서 CD 내에 첨부된 강좌를 참조해 가며 해봤습니다만. 막힘이 많아서 전화 문의도 몇번 하고 그랬는데. 실수한 점만 없다면 CD 내에서 시킨대로만 하면 실행하는데에 문제가 없을 것이라고 하셨으나. 아무래도 실수한것이 있는건지.. 아무튼 결국 못했습니다. 소스 입력 및 프로그램 실행을 못했습니다. 때문에 명일 용산의 본사로 직접 방문을 할 생각입니다. 시간은 이 글을 보시는 대로 답글을 부탁드리구요. 제가 알기로는 용산 근처에서 전문적으로 코딩을 하는 업체가 있다고 하던데, 만약 뉴티씨 본사에서 안된다면, 아는 업체라도 소개를 좀 부탁드립니다.
관리자 답변 N.T.C · 2009-11-06
넹....방금 왔다 간 분이신가 보네요. 질문들이 많다 보니, 간혹 빼먹기도 합니다. 하지만, 나중에라도 체크가 거의 되지요. 오늘 알려드린 데로 하면 되겠습니다. 수고하세요. >근래에 KR-DL 16 모델의 라인트레이서를 구매했습니다. > >완제품이구요. > >프로그램 입력 과정에서..... AVR 프로그램을 실행해서 CD 내에 첨부된 강좌를 참조해 가며 > >해봤습니다만. > >막힘이 많아서 전화 문의도 몇번 하고 그랬는데. > >실수한 점만 없다면 CD 내에서 시킨대로만 하면 실행하는데에 문제가 없을 것이라고 하셨으나. > >아무래도 실수한것이 있는건지.. 아무튼 결국 못했습니다. 소스 입력 및 프로그램 실행을 못했습니다. > >때문에 명일 용산의 본사로 직접 방문을 할 생각입니다. > >시간은 이 글을 보시는 대로 답글을 부탁드리구요. > >제가 알기로는 용산 근처에서 전문적으로 코딩을 하는 업체가 있다고 하던데, 만약 뉴티씨 본사에서 안된다면, 아는 업체라도 소개를 좀 부탁드립니다. > >
3982 답변완료질문드립니다!!! 이승철 2009-11-05 5,678
안녕하세요^^ 저는 뉴티씨의 라인트레이서 KIT KR_SL16에서 AVR을 128pro로 바꾸어서 구현중인데요... 스테핑모터 소스를 찾아보던중에... 뉴티씨 카페에 따사꿈님께서 올려주신 소스를 발견하였는데... 컴파일을 하면 양쪽 모터가 멈추어서 돌아가지 않고... 모터에서 삐~~ 하는 소리만 나는데요... 제가 설정을 잘못해준것인지... 소스코드 돌려보기 전에 어떤 설정을 해주어야 하는것인지... 아니면 제 컴에서만 안 되는것인지 궁금하여 올려봅니다!!! //ICC-AVR application builder : 2009-02-17 오후 3:00:55 // Target : M128 // Crystal: 16.000Mhz #include <iom128v.h> #include <macros.h> #define MOTORPORT PORTC #define MOTORDDR DDRC volatile unsigned int Count=0, Value_R=0xC2, Value_L=0xC2; volatile unsigned char Step_RG=0, Step_RB=0, Step_LG=0,Step_LB=0, Input=0, Status=0; unsigned char RGO[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; unsigned char RBACK[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; unsigned char LGO[8]={0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90}; unsigned char LBACK[8]={0x90,0x80,0xc0,0x40,0x60,0x20,0x30,0x10}; 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; } //TIMER0 initialize - prescale:256 // WGM: Normal // desired value: 1KHz // actual value: 1.008KHz (0.8%) void timer0_init(void) { TCCR0 = 0x00; //stop ASSR = 0x00; //set async mode TCNT0 = 0xC2; //set count OCR0 = 0x3E; TCCR0 = 0x06; //start timer } #pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF void timer0_ovf_isr(void) { TCNT0 = Value_R; //reload counter value if(Status&0x01) MOTORPORT = RGO[Step_RG++]; if(Status&0x02) MOTORPORT = RBACK[Step_RB++]; if(Step_RG>7) Step_RG=0; if(Step_RB>7) Step_RB=0; if(Value_R>0xfa) Value_R=0xfa; if(Value_R<0x05) Value_R=0x05; } //TIMER1 initialize - prescale:256 // WGM: 0) Normal, TOP=0xFFFF // desired value: 100Hz // actual value: 100.000Hz (0.0%) void timer1_init(void) { TCCR1B = 0x00; //stop TCNT1H = 0xFD; //setup TCNT1L = 0x8F; OCR1AH = 0x02; OCR1AL = 0x71; OCR1BH = 0x02; OCR1BL = 0x71; OCR1CH = 0x02; OCR1CL = 0x71; ICR1H = 0x02; ICR1L = 0x71; TCCR1A = 0x00; TCCR1B = 0x04; //start Timer } #pragma interrupt_handler timer1_ovf_isr:iv_TIM1_OVF void timer1_ovf_isr(void) { //TIMER1 has overflowed TCNT1H = 0xFD; //reload counter high value TCNT1L = 0x8F; //reload counter low value if(Count++>50){ Input=PINA; if(Input==0x01) Status = (Status&0xf0)|0x01; if(Input==0x02) Status = (Status&0xf0)|0x02; if(Input==0x04) Value_R++; if(Input==0x08) Value_R--; if(Input==0x10) Status = (Status&0x0f)|0x10; if(Input==0x20) Status = (Status&0x0f)|0x20; if(Input==0x40) Value_L++; if(Input==0x80) Value_L--; Input=0; Count=0; } } //TIMER2 initialize - prescale:256 // WGM: Normal // desired value: 1KHz // actual value: 1.008KHz (0.8%) void timer2_init(void) { TCCR2 = 0x00; //stop TCNT2 = 0xC2; //setup OCR2 = 0x3E; TCCR2 = 0x04; //start } #pragma interrupt_handler timer2_ovf_isr:iv_TIM2_OVF void timer2_ovf_isr(void) { TCNT2 = Value_L; //reload counter value if(Status&0x10) MOTORPORT = LGO[Step_LG++]; if(Status&0x20) MOTORPORT = LBACK[Step_LB++]; if(Step_LG>7) Step_LG=0; if(Step_LB>7) Step_LB=0; if(Value_L>0xfa) Value_L=0xfa; if(Value_L<0x05) Value_L=0x05; } //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(); timer0_init(); timer1_init(); timer2_init(); MCUCR = 0x00; EICRA = 0x00; //extended ext ints EICRB = 0x00; //extended ext ints EIMSK = 0x00; TIMSK = 0x45; //timer interrupt sources ETIMSK = 0x00; //extended timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialized } // void main(void) { init_devices(); MOTORDDR=0xFF; while(1){ ; } } 이것이 카페에 따사꿈님께서 올려주신 소스인데요... 문제점이 무엇일까요?? 답변좀 부탁드립니다!!! 감사합니다!!!
관리자 답변 sirmrichards · 2010-03-04
<a href=http://bobble.0ya.org/member.php?u=430 target=_blank>http://bobble.0ya.org/member.php?u=430 </a> <a href=http://webtechspot.com/forum/member.php?u=1780 target=_blank>http://webtechspot.com/forum/member.php?u=1780 </a> <a href=http://malusdeiguild.com/forum/member.php?u=14998 target=_blank>http://malusdeiguild.com/forum/member.php?u=14998 </a> <a href=http://hdstreamz.com/member.php?u=870 target=_blank>http://hdstreamz.com/member.php?u=870 </a> <a href=http://paghosthuntersclub.com/forums/member.php?u=566 target=_blank>http://paghosthuntersclub.com/forums/member.php?u=566 </a> <a href=http://zhieeep.com/forum/member.php?u=4281 target=_blank>http://zhieeep.com/forum/member.php?u=4281 </a> <a href=http://www.pixysaver.com/member.php?u=3739 target=_blank>http://www.pixysaver.com/member.php?u=3739 </a> <a href=http://allterrainforum.com/member.php?u=7521 target=_blank>http://allterrainforum.com/member.php?u=7521 </a> <a href=http://www.lukosite.nl/sanctum/forum/member.php?u=810 target=_blank>http://www.lukosite.nl/sanctum/forum/member.php?u=810 </a> <a href=http://forum.lahoreisp.com/member.php?u=6854 target=_blank>http://forum.lahoreisp.com/member.php?u=6854 </a> <a href=http://www.youthclub-sa.com/forum/member.php?u=61 target=_blank>http://www.youthclub-sa.com/forum/member.php?u=61 </a> <a href=http://76.12.250.209/vbulletin3/member.php?u=9 target=_blank>http://76.12.250.209/vbulletin3/member.php?u=9 </a> <a href=http://disturbia-guild.co.cc/member.php?u=1008 target=_blank>http://disturbia-guild.co.cc/member.php?u=1008 </a> <a href=http://www.nicheblogdomination.com/forum/member.php?u=21647 target=_blank>http://www.nicheblogdomination.com/forum/member.php?u=21647 </a> <a href=http://cendana.goldenmother.org/member.php?u=19297 target=_blank>http://cendana.goldenmother.org/member.php?u=19297 </a> <a href=http://trakhuc.com/diendan/member.php?u=1357 target=_blank>http://trakhuc.com/diendan/member.php?u=1357 </a> <a href=http://j-bank.info/forum/member.php?u=2062 target=_blank>http://j-bank.info/forum/member.php?u=2062 </a> <a href=http://www.northwestdadsclub.com/forum/member.php?u=4662 target=_blank>http://www.northwestdadsclub.com/forum/member.php?u=4662 </a> <a href=http://www.realitytvforum.co.uk/member.php?u=6663 target=_blank>http://www.realitytvforum.co.uk/member.php?u=6663 </a> <a href=http://www.forum-kurma.com/forum/member.php?u=1288 target=_blank>http://www.forum-kurma.com/forum/member.php?u=1288 </a> <a href=http://www.eu-otd.net/home/member.php?u=2383 target=_blank>http://www.eu-otd.net/home/member.php?u=2383 </a> <a href=http://matcom-techniger.com/member.php?u=1925 target=_blank>http://matcom-techniger.com/member.php?u=1925 </a> <a href=http://www.hpnotebookclub.com/forums/member.php?u=10934 target=_blank>http://www.hpnotebookclub.com/forums/member.php?u=10934 </a> <a href=http://titsnass.com/forums/member.php?u=1283 target=_blank>http://titsnass.com/forums/member.php?u=1283 </a> <a href=http://www.snow-dogz.com/forum/member.php?u=946 target=_blank>http://www.snow-dogz.com/forum/member.php?u=946 </a>
3981 답변완료AM-3AXIS 가속도 센서 문의 정재원 2009-11-05 1,437
가속도센서구입을 했는데요 첫번째 1.5g , 800mV/g 라는 말이 무슨 의미죠?? 가속도가 1.5g 증감하면 800mV식 같이 증감하며 출력된다는 말인가요? 1.5g는 1.5X9.8m/s^2 을 의미하나요? 두번째 그리고 이 센서가 3.3V가 기준전압인데 ATmega128에서 ADC로 입력받을때 `ATmega128은 5V가 기준전압인데 이걸 해결하는 방법은 뭔가요? ATmega128의 ADC 기준전압을 3.3V로 &#47583;추는방법은? 세번째 g-Select1, g-Select2 핀에 인가되는 전압은 3.3V여야 하나요? ATmega128에서 제어하고픈데 5V로 넣으면 안되나요?
관리자 답변 N.T.C · 2009-11-06
안녕하세요 1. 감도 입니다. g당 800mV 출력이 나오다는말입니다. 2. ADC 기준전압을 변경하는 방법은 칩에 vref또는 aref 핀에 원하는 전압을 넣으면 됩니다. 레펀런스전압을 안바꿔서 하셔도 상관없습니다. ( 분해능만 낮아질 뿐입니다.) 3.g-Select핀과 avr io 핀 가운데 1K저항이상을 삽입하여 제어 하시면 됩니다. 감사합니다. >가속도센서구입을 했는데요 > >첫번째 >1.5g , 800mV/g 라는 말이 무슨 의미죠?? >가속도가 1.5g 증감하면 800mV식 같이 증감하며 출력된다는 말인가요? >1.5g는 1.5X9.8m/s^2 을 의미하나요? > >두번째 >그리고 이 센서가 3.3V가 기준전압인데 ATmega128에서 ADC로 입력받을때 `ATmega128은 5V가 기준전압인데 이걸 해결하는 방법은 뭔가요? ATmega128의 ADC 기준전압을 3.3V로 &#47583;추는방법은? > >세번째 >g-Select1, g-Select2 핀에 인가되는 전압은 3.3V여야 하나요? >ATmega128에서 제어하고픈데 5V로 넣으면 안되나요?
3980 답변완료프로그램 관련 문의 민준기 2009-11-05 1,417
최근에 KR-DL16 모델을 구입했습니다. AVR 프로그램 입력기를 실행시켜서 작업을 하는데요. 초짜입니다. 근데..프로그램 구현 설명은 대부분 Atmega 128 위주로 되어 있더군요. 그리고 제가 구입한 제품의 CPU는 Atmega 16 입니다. 프로그램 입력 및 실행을 하는 과정에 있어서....참조된 설명 강좌에 따르면 무슨... mega.c가 뉴티씨 회사 홈페이지에 올려져 있으니. 그걸 복사 해서 생성해 대입 시키고 난 뒤에 다음 작업으로 이어질수 있는것 같던데. 홈페이지에 보면 있다길래 그걸 찾으려고 뒤졌는데 영 안 보이더군요. 제가 못 찾아서 그런건지 모르겠지만요. 그러니.... 그 mega.c 파일이 (소스 인걸로 압니다) 이 홈페이지에 있는게 맞는건지. 맞다면 어디에 있는건지 좀 가르쳐주시길 부탁드립니다.
관리자 답변 N.T.C · 2009-11-05
안녕하세요 고객님 자료실--> 기존자료실에 가서 16으로 검색해보세요 관련자료들이 나올겁니다 물론 소스도 마찬가지구요 128로된 강좌가 대부분이지만 약간의 응용만으로 16용도 만들수있어요 수고하세요 >최근에 KR-DL16 모델을 구입했습니다. > >AVR 프로그램 입력기를 실행시켜서 작업을 하는데요. > >초짜입니다. > >근데..프로그램 구현 설명은 대부분 Atmega 128 위주로 되어 있더군요. > >그리고 제가 구입한 제품의 CPU는 Atmega 16 입니다. > > >프로그램 입력 및 실행을 하는 과정에 있어서....참조된 설명 강의에 따르면 > >무슨... > >mega.c가 뉴티씨 회사 홈페이지에 올려져 있으니. 그걸 복사 해서 생성해 > >대입 시키고 난 뒤에 다음 작업으로 이어질수 있는것 같던데. > >홈페이지에 보면 있다길래 그걸 찾으려고 뒤졌는데 영 안 보이더군요. 제가 못 찾아서 그런건지 모르겠지만요. > >그러니.... 그 mega.c 파일이 (소스 인걸로 압니다) > >이 홈페이지에 있는게 맞는건지. 맞다면 어디에 있는건지 좀 가르쳐주시길 부탁드립니다.
3979 답변완료하이퍼터미널 김정대 2009-11-05 1,319
현재 컴퓨터에 하이퍼터미널이 없어서 프린트를 사용하여 디버깅을 못하고 있는데 어떻게 해야합니까 프린트말고 다른 소스는 없는겁니까;; 급합니다 빠른 답변 부탁드려요.
관리자 답변 N.T.C · 2009-11-05
프린트가 뭔가요? >현재 컴퓨터에 하이퍼터미널이 없어서 프린트를 사용하여 디버깅을 못하고 있는데 >어떻게 해야합니까 프린트말고 다른 소스는 없는겁니까;; 급합니다 빠른 답변 >부탁드려요.