로그인 | 회원가입 | 주문 조회
총 10,743개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
2928 답변완료USB-ISP V02 관련 문의입니다. 빠른 답변 부탁드립니다. 사용자 2009-05-19 1,291
귀사의 제품을 구입해 사용하고 있는데 비스타에서 제품을 인식하지 못하고 있습니다. 수동설치를 이용해서 설치파일을 찾아도 맞는 드라이버가 아니라고 뜨고, 원인도 알 수 없어 애를 먹고 있네요. 근데 전화문의를 했더니, 전화로 기술적 문의는 안된다고 하시더라구요. 이거 답변을 얼마나 빨리 해주실지는 모르겠는데, 기기에 대한 전화문의가 되지 않는다는 것 자체가 오류가 아닐까 생각하네요. 빨리 답변 부탁드립니다. 수고하세요~
관리자 답변 N.T.C · 2009-05-19
안녕하세요...고객님... 저희는 고객님의 자유로운 게시판 이용을 위해 실명으로 질문을 한다면 로그온을 하지 않아도 게시판에 글쓰기가 가능하도록 했습니다. 하지만 몇몇 고객님들께서 익명으로 질문을 시작한 후 최근엔 많은 질문에 익명이 사용되고 있습니다. 저희 회사에서는 논의를 거쳐 당분간은 익명 사용자에 한해 답변을 거절하기로 했으며, 차후에도 문제점이 해결되지 않는다면 로그온 사용자만 게시판을 이용할 수 있도록 할 예정입니다. 질문은 반드시 실명으로 올려주시기 바랍니다. 감사합니다. >귀사의 제품을 구입해 사용하고 있는데 >비스타에서 제품을 인식하지 못하고 있습니다. > >수동설치를 이용해서 설치파일을 찾아도 >맞는 드라이버가 아니라고 뜨고, >원인도 알 수 없어 애를 먹고 있네요. > >근데 전화문의를 했더니, >전화로 기술적 문의는 안된다고 하시더라구요. >이거 답변을 얼마나 빨리 해주실지는 모르겠는데, >기기에 대한 전화문의가 되지 않는다는 것 자체가 >오류가 아닐까 생각하네요. > >빨리 답변 부탁드립니다. 수고하세요~
2927 답변완료센서 출력 신호 관련 문의 권은조 2009-05-19 1,274
안녕하세요 항상 친절한 답변 감사드리고요 지송하지만 오늘도 초보적인 질문입니다. 현재 KD-128pro를 사용하고 있습니다 이제까지는 귀사의 IR센서모듈을 사용하여 별 문제없이 제어하고 있습니다 그런데 이번에 다른 업체의 근접센서를 구입했는데 데이터 시트를 보았더니 출력 방식이 이상해서 문의 드립니다. 데이터 시트 내용은 다음과 같습니다. #NPN또는 PNP 오픈 콜렉터 출력 #부하전압: 26.4VDC이하 #부하전류: 100mA이하 #잔류전압: NPN 1V 이하 PNP:전원전압 -2.5V 이상 이것은 7805같은 레귤레이터를 달아서 5v로 다운 시키고 직접 마이컴에 연결하면 되나요? 아니면 저항을 달아서 전압을 낮추어 주어야 하나요? 어떻게 해야 마이컴에서 인식할 수 있는지 알려 주셧으면 감사 하겠습니다.
관리자 답변 N.T.C · 2009-05-19
안녕하세요? 고객님, 저희 NewTC 제품을 이용하여 주셔서 감사합니다. 말씀하신 다른 업체의 센서 내용이라면 그 회사로 문의하시는 것이 좋겠습니다. 본사에서 정확히 알수가 없으므로, 자세한 것은 구매한 제품의 회사로 문의하세요. 다만, 아날로그 데이터로 나온다면, 시그널을 AVR에서 받을 수 있도록 0~5V 정도로 변환하거나 -2.5V~2.5V로 Signal conditioning을 통하여 변환하여 A/D 컨버터로 하시면 되구요. 디지탈 타입이라면, 거기서 추천하는 방식으로 입력 받아야 하겠습니다. 수고하세요. >안녕하세요 >항상 친절한 답변 감사드리고요 >지송하지만 오늘도 초보적인 질문입니다. > >현재 KD-128pro를 사용하고 있습니다 이제까지는 귀사의 IR센서모듈을 사용하여 별 문제없이 제어하고 있습니다 그런데 이번에 다른 업체의 근접센서를 구입했는데 데이터 시트를 보았더니 출력 방식이 이상해서 문의 드립니다. > >데이터 시트 내용은 다음과 같습니다. > >#NPN또는 PNP 오픈 콜렉터 출력 >#부하전압: 26.4VDC이하 >#부하전류: 100mA이하 >#잔류전압: NPN 1V 이하 PNP:전원전압 -2.5V 이상 > >이것은 7805같은 레귤레이터를 달아서 5v로 다운 시키고 직접 마이컴에 연결하면 되나요? 아니면 저항을 달아서 전압을 낮추어 주어야 하나요? >어떻게 해야 마이컴에서 인식할 수 있는지 알려 주셧으면 감사 하겠습니다. >
2926 답변완료am-rfmod 셋팅 질문이요 김강민 2009-05-19 1,215
am-rfmod 2mhz를 사용하고 있는데요 전송 속도를 변경하려고 하는데 rs232가 달린 케이블로 연결하고 올려주신 프로그램을 이용하여 속도를 바꿨는데 이게 안바뀌는데 문제가 무엇인가요? i/o통신으로 작동은 확인 했거든요... 정확히는 바뀌는지 여부를 체크하는 법을 모르겠어요 그리고 아마 안되는거 같아요
관리자 답변 N.T.C · 2009-05-19
안녕하세요? 고객님, 저희 NewTC 제품을 이용하여 주셔서 감사합니다. 바꿀 때, 반드시 Configuration Mode로 놓고 RFMOD를 리셋하여 Ok 떨어지고 난 후에, 하셔야 합니다. 그리고, 속도가 바뀌고 나면 변경된 속도로 바뀌면서, 기존 속도와 틀리기 때문에 글자가 깨져 나오게 됩니다. 다시 속도를 바꾼 속도로 소프트웨어를 변경한 후에, 하면 다시 글자가 깨지지 않고 나오게 됩니다. 반드시, 변경 후에 리셋을 해야 합니다. 소프트웨어를 변경된 속도로 놓은 후에 일반 communication mode로 놓고 OK가 떨어지는 지 확인하는 것이 좋겠습니다. 하다 잘 안 되거나 궁금하면 본사로 방문하는 것이 좋겠습니다. 또한, 전용 프로그램으로 변경하지 않더라도 하이퍼터미널에서 명령어로 변경할 수도 있으니, 그것이 편할 수도 있습니다. 수고하세요. >am-rfmod 2mhz를 사용하고 있는데요 > >전송 속도를 변경하려고 하는데 > >rs232가 달린 케이블로 연결하고 > > 올려주신 프로그램을 이용하여 속도를 바꿨는데 > >이게 안바뀌는데 문제가 무엇인가요? > >i/o통신으로 작동은 확인 했거든요... > > >정확히는 바뀌는지 여부를 체크하는 법을 모르겠어요 > >그리고 아마 안되는거 같아요
2925 답변완료AD-USBISP 다운로딩 문제입니다. 노종현 2009-05-19 1,265
포트A 의 0번,1번 핀에 LED 를 물려놓고 둘중에 하나만 켜는 간단한 실험을 하는데요, 이게 둘다 불이 들어오네요... 제가 보니까 포트초기화 해주는 함수 port_init 안의 PORTA=0x00; 는 인식하는데 밑에 main 함수의 PORTA=0x01; 이거는 인식 못하네요.. port_init 안의 PORTA=0x01; 해주니까 LED 두개중에 하나만 불 들어와서 원하는대로 작동이 되는데, 왜 main 함수에서 PORTA 값을 다시 바꾸려고 하니 인식이 안될까요. ㅠㅠ //ICC-AVR application builder : 2009-05-19 오후 1:18:29 // Target : M128 // Crystal: 11.059Mhz #include <iom128v.h> #include <macros.h> void port_init(void) { PORTA = 0x00; DDRA = 0xFF; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //m103 output only DDRC = 0x00; 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 XDIV = 0x00; //xtal divider XMCRA = 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 } // void main(void) { init_devices(); PORTA=0x01; }
관리자 답변 N.T.C · 2009-05-19
안녕하세요...고객님... 고객님의 소스는 PORTA0에 5V가 출력되는 프로그램이 맞습니다. 지금 PORTA1에도 5V가 출력된다는 뜻인가요? 그렇다면 아마 타겟보드 설정에 문제가 있거나 퓨즈설정등 기타 설정에 문제가 있는 것입니다. 확인해보시고 다시 질문주시기 바랍니다. 감사합니다. >포트A 의 0번,1번 핀에 LED 를 물려놓고 둘중에 하나만 켜는 간단한 실험을 >하는데요, 이게 둘다 불이 들어오네요... > >제가 보니까 포트초기화 해주는 함수 port_init 안의 PORTA=0x00; 는 인식하는데 >밑에 main 함수의 PORTA=0x01; 이거는 인식 못하네요.. > >port_init 안의 PORTA=0x01; 해주니까 LED 두개중에 하나만 불 들어와서 >원하는대로 작동이 되는데, 왜 main 함수에서 PORTA 값을 다시 바꾸려고 하니 인식이 안될까요. >ㅠㅠ > > > > > >//ICC-AVR application builder : 2009-05-19 오후 1:18:29 >// Target : M128 >// Crystal: 11.059Mhz > >#include <iom128v.h> >#include <macros.h> > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0xFF; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; //m103 output only > DDRC = 0x00; > 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 > XDIV = 0x00; //xtal divider > XMCRA = 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 >} > >// >void main(void) >{ > init_devices(); > PORTA=0x01; > >} > >
2924 답변완료동강보고 따라해보는데 잘안되서 문의합니다 유두환 2009-05-19 1,267
AVR로 라인트레이서 만들기 강좌 1. ATMEGA128 포트 입출력 에서 기본 설정을 M16으로 했고 내부 스위치 (PD2, 3) 내부 LED(PB0, 1)을 사용하여 테스트 하려하고 있습니다. 소스 다운로드후 실행하면 스위치를 눌러도 아무런 킷트내 아무런변화가 없습니다. 테스터기로 GND단과 LT_PD2단인 CPU 16번핀의 전압을 측정하였을때 5V인가되는것은 확인할수 있었습니다. 하지만 킷트 내 아무런 동작이 일어나지를 않네요! 소스 오류인지 아니면 킷트 이상인지 확인할 방도가 없어 글올립니다. 그리고 switch(sw)부분을 switch(1)로 조건해제하여 소스를 다운로드 후 킷트내 전원을 off했다 on시키면 바로 LED쪽으로 출력이 나오지않고 이상태에서 컴퓨터와 USB-ISP로 연결해주면 출력이 나오고 있는데 원래대로 라면 전원 on후 바로 출력이 나와야 정상이 아닌가요? 처음 접하는 AVR이라 미흡한 점이 많습니다. 조금은 번거로우시더라도 답변 부탁드립니다. 그럼 고생하시기 바랍니다! //ICC-AVR application builder : 2009-05-18 오후 9:34:48 // Target : M16 // Crystal: 16.000Mhz #include <iom16v.h> #include <macros.h> void port_init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //m103 output only DDRC = 0x00; PORTD = 0x00; DDRD = 0x00; } //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up CLI(); //disable all interrupts port_init(); MCUCR = 0x00; GICR = 0x00; TIMSK = 0x00; //timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialized } void delay(int cnt) { int i, j; for(i=0; i<1000; j++) for(j=0; j<1000; j++); } void main (void) { unsigned char sw; init_devices(); DDRB=0xff; DDRD=0x00; while(1){ sw = PIND; switch(sw) { case 0x04 : PORTB = 0x01; break; delay(100); case 0x08 : PORTB = 0x02; break; delay(100); default : PORTB = 0x00; } } }
관리자 답변 N.T.C · 2009-05-19
안녕하세요...고객님... 혹시 타겟보더의 설정은 제대로 되었는지 다시 한번 확인하시고, 소스에서 switch문의 delay는 동작을 안하게 되어있네요. break;하면 switch문을 빠져나가버리죠. 설정이 제대로 되었다면 2.5V정도만 led에 전압이 걸리겠네요. 수정해보시고 안되면 다시 질문주세요. 감사합니다. > >AVR로 라인트레이서 만들기 >강좌 1. ATMEGA128 포트 입출력 에서 > >기본 설정을 M16으로 했고 >내부 스위치 (PD2, 3) 내부 LED(PB0, 1)을 사용하여 테스트 하려하고 있습니다. >소스 다운로드후 실행하면 스위치를 눌러도 아무런 킷트내 아무런변화가 없습니다. >테스터기로 GND단과 LT_PD2단인 CPU 16번핀의 전압을 측정하였을때 5V인가되는것은 확인할수 있었습니다. >하지만 킷트 내 아무런 동작이 일어나지를 않네요! >소스 오류인지 아니면 킷트 이상인지 확인할 방도가 없어 글올립니다. > > >그리고 switch(sw)부분을 switch(1)로 조건해제하여 소스를 다운로드 후 킷트내 전원을 off했다 on시키면 바로 LED쪽으로 출력이 나오지않고 이상태에서 컴퓨터와 USB-ISP로 연결해주면 출력이 나오고 있는데 원래대로 라면 전원 on후 바로 출력이 나와야 정상이 아닌가요? >처음 접하는 AVR이라 미흡한 점이 많습니다. >조금은 번거로우시더라도 답변 부탁드립니다. >그럼 고생하시기 바랍니다! > >//ICC-AVR application builder : 2009-05-18 오후 9:34:48 >// Target : M16 >// Crystal: 16.000Mhz > >#include <iom16v.h> >#include <macros.h> > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0x00; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; //m103 output only > DDRC = 0x00; > PORTD = 0x00; > DDRD = 0x00; >} > >//call this routine to initialize all peripherals >void init_devices(void) >{ > //stop errant interrupts until set up > CLI(); //disable all interrupts > port_init(); > > MCUCR = 0x00; > GICR = 0x00; > TIMSK = 0x00; //timer interrupt sources > SEI(); //re-enable interrupts > //all peripherals are now initialized >} > >void delay(int cnt) >{ >int i, j; >for(i=0; i<1000; j++) > for(j=0; j<1000; j++); >} > >void main (void) >{ >unsigned char sw; > >init_devices(); >DDRB=0xff; >DDRD=0x00; > >while(1){ > >sw = PIND; >switch(sw) >{ >case 0x04 : PORTB = 0x01; break; >delay(100); >case 0x08 : PORTB = 0x02; break; >delay(100); > >default : PORTB = 0x00; >} >} >}
2923 답변완료serial ㅠ.ㅠ 박병철 2009-05-19 1,240
범용 직렬... usb serial converter 잡혀있고요...포트엔 usb serial port(com1)으로 잡혀 있어요... atmega128은 귀사 제품이 맞습니다. 프로그램 상에서 InSystem Programming 상에서 환경 설정에 문제가 있는듯 한데.. 어느것을 참고 해야 할까요?
관리자 답변 N.T.C · 2009-05-19
안녕하세요...고객님... 저희 제품 AD-USBSERIAL은 USB_SERIAL N.T.C(COMXX)이런식으로 인식되어야 정상입니다. 그리고 USBSERIAL은 시리얼통신용 케이블이며 ISP다운로더가 아닙니다. In System Programming은 ISP다운로드설정시 사용되는 메뉴입니다. 본사의 USBISP가 아니신 것 같은데요. 그렇더라도, USBISP V02 메뉴얼을 보면 참고가 될 것 같습니다. 자료실에서 확인해서 다운받아 보세요. 셋팅방법이 나와 있습니다. 다시 확인해보시고 질문주세요. 감사합니다. >범용 직렬... usb serial converter 잡혀있고요...포트엔 usb serial port(com1)으로 잡혀 있어요... >atmega128은 귀사 제품이 맞습니다. >프로그램 상에서 InSystem Programming 상에서 환경 설정에 문제가 있는듯 한데.. >어느것을 참고 해야 할까요?
2922 답변완료노트북에서 ATMEGA128사용하기... 박병철 2009-05-19 1,145
노트북에 RS232 포트가 없어서 USB-TO-SERIAL 포트를 구매하였습니다. 그리고, AM-RS232를 연결하였는데, 인식이 안됩니다. 어떻게 하면 됩니까?
관리자 답변 N.T.C · 2009-05-19
안녕하세요..고객님... 드라이브는 제대로 설치되었습니까? 드라이브는 저희 자료실에 보시면 나와있습니다. USB-TO-SERIAL 은 따로 AM-RS232 없이 사용가능합니다. 노트북에서 시스템관리==>장치관리자==>하드웨어==>포트에서 USB-TO-SERIAL 이 제대로 인식되는지 확인해 주세요. 혹시 ATMEGA128보드가 타회사 제품이라면 핀연결은 제대로 되어있는지 확인해주세요. 감사합니다. >노트북에 RS232 포트가 없어서 USB-TO-SERIAL 포트를 구매하였습니다. >그리고, AM-RS232를 연결하였는데, 인식이 안됩니다. >어떻게 하면 됩니까?
2921 답변완료ntc에서 나온 4족 로봇 제품 문의 입니다 오인원 2009-05-19 1,312
팜플렛을 보니 4족 로봇에 대해 나왔는데 혹시 프레임만 이라도 따로 파는지 알고 싶습니다
관리자 답변 N.T.C · 2009-05-19
안녕하세요...고객님.... 4족 로봇은 단종한 제품입니다. 아마 팜플렛이 예전거인가보네요. 죄송합니다. 감사합니다. >팜플렛을 보니 4족 로봇에 대해 나왔는데 혹시 프레임만 이라도 따로 파는지 알고 싶습니다
2920 답변완료atmega128과 lcd를 연결하려고 합니다. 왕종인 2009-05-18 1,415
안녕하세요. 현재 ntc의 atmega128 pro 제품을 사용하고 있습니다. 제가 궁금한 부분은 시리얼 통신을 하는 부분인데요.. 이 부분에 대해 잘 몰라서 질문을 드립니다.. 먼저 제가 사용하는 아트메가 제품은 uart가 아닌 rs232인거 같은데 맞는지요?? 설명서를 보면 맞는거 같은데요.. 엘씨디를 연결할때 AM-SLCD216 (Serial LCD 모듈)를 구입할건데.. 그렇다면 uart 컨넥터가 아니라 rs232 쪽에다가 연결시켜야 하는게 맞는거죠?? 만약 맞다면 아트메가의 rs232쪽과 엘씨디모듈의 rs232쪽을 연결할때는 어떤 변환장치가 필요없고, 3핀 컨넥턱로 연결만 해주면 되는건지 알고싶습니다. 또한 연결후 따로 5V 전원을 해줘야겠지요? 그리고 이번엔 코드부문인데요.. 현재 아트메가의 포트A가 음성인식모듈로부터 신호를 받아서 해당 신호에 대한 처리를 하여 모터와 엘이디를 제어하는 회로를 만든상태입니다. 여기에 추가로 엘씨디를 연결하여.. 음성모듈에서 어떤 신호가 들어왔을때 엘씨디에 지정해논 글자를 출력하게 하려고 합니다. 어떠한 식으로 코드를 작성해야 할지 감이 잡히지 않네요;; 예를들어 portb의 0번 포트에 1이라는 신호를 보낼땐 PORTB = 0x01 이라고 하면 되지만 시리얼일 경우엔 어떻게 해야하나요?? 코드마법사에서 UART 부분에 체크를 해야 할거 같은데 어떤 부분에 체크해야 하는지 알고싶습니다. UART0, UART1 다 사용해야 하는지.. 그리고 아래부분에 RX TX 인터럽트 부분도 체크를 해야하는지도요.. 현재 ICCAVR을 사용중이구요.. 제가 짜논 부분은 아래에 붙여놓겠습니다. ---------------------------------------------------------------------------------------------------------- 또하나 문의사항이 있습니다. http://www.nsystech.com/Data/XLCD%20User%20Guide_V1.2.pdf 제가 현재 구입한 lcd 모듈입니다. 여기에 제가 사용하고 있는 atmega128 pro랑 도저히 어떻게 연결해야 할지 모르겠습니다.. 그리고 usb232 라는 것을 가지고 있는데요.. TTL 시리얼 인거 같은데 어떻게 사용하는지 모르겠네요;; 한쪽은 USB이고 한쪽은 4PIN TTL 인거 같은데.. 이것을 사용하여 귀사의 아트메가와 연결이 가능한지도 알고싶습니다. ----------------------------------------------------------------------------------------------------------- 코드가 참 허접합니다 ㅠㅠ 코드를 짜면서 궁금한 점이 하나 더 있는데요.. 필요한 함수를 선언해서 사용할때요.. 메인 윗부분에서 void 함수이름(void); 이런식으로 선언만 해놓고 메인문 밑에 함수 내용을 쓰는거랑 메인 윗부분에 void함수이름(void){함수내용} 이런식으로 한번에 적어놓는거랑 어떤 차이가 있는지도 알고싶네요~~ 본의 아니게 질문 폭격을 하게 되었네요..ㅠㅠ 다음주 까지 졸작을 완성해야되서 조급한 마음에 남겨봅니다. 좋은 하루 되시구요~~ 답변 부탁드립니다~~ ㅎㅎ ------------------------------------------------------------------------------------------------------------- //ICC-AVR application builder : 2009-02-19 오후 6:03:30 // Target : M128 // Crystal: 16.000Mhz #include <iom128v.h> #include <macros.h> #define LED_I PORTB #define LED_O PORTC #define MOTOR PORTD unsigned char SW; unsigned char LED; void port_init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //m103 output only DDRC = 0x00; 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 XDIV = 0x00; //xtal divider XMCRA = 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 } void DELAY(int cnt); void MOTOR_R(void); void MOTOR_L(void); void MOTOR_OFF(void); void I_ON(void); void I_OFF(void); void O_ON(void); void O_OFF(void); void LED_C(void); void main(void) { init_devices(); DDRA = 0xF8; DDRB = 0x01; DDRC = 0x01; DDRD = 0x03; PORTA = 0x00; PORTB = 0x00; PORTC = 0x00; PORTD = 0x00; while(1) { DELAY(500); SW = PINA; DELAY(500); switch(SW) { case 0x01 : MOTOR_R(); break; case 0x02 : MOTOR_L(); break; case 0x03 : MOTOR_OFF(); break; case 0x04 : I_ON(); break; case 0x05 : I_OFF(); break; case 0x06 : O_ON(); break; case 0x07 : O_OFF(); break; default : ; } } } void DELAY(int cnt) { int i,j; for(i=0;i<cnt;i++) { for(j=0;j<cnt;j++); } } void MOTOR_R(void) { LED_C(); MOTOR = 0x01; } void MOTOR_L(void) { LED_C(); MOTOR = 0x02; } void MOTOR_OFF(void) { LED_C(); MOTOR = 0x03; } void I_ON(void) { LED_C(); LED_I = 0x01; } void I_OFF(void) { LED_C(); LED_I = 0x00; } void O_ON(void) { LED = 0x01; LED_O = 0x01; DELAY(1000); LED_O = 0x00; DELAY(1000); } void O_OFF(void) { LED_C(); LED = 0x00; LED_O = 0x00; } void LED_C(void) { switch(LED) { case 0x01 : O_ON(); break; case 0x02 : O_OFF(); break; default : ; } }
관리자 답변 N.T.C · 2009-05-19
안녕하세요? 구입하신 모델이 AM-128PRO 인것 같은데, MAX232를 거친 후의 출력인 RS-232C레벨의 UART 신호가 0, 1번 이렇게 몰렉스 5267-3케넥터로 출력됩니다. 또한, TTL Level의 UART0, 1번은 양 옆의 16*2의 헤더박스 두개에서 빼서 사용이 가능합니다. 원하는 어떤 시리얼 레벨이라도 사용할 수 있다는 얘기입니다. 그리고, 그 말씀하신 시리얼 모듈은 NewTC 제품이 아닙니다. 자세한 것은 그쪽 회사에 문의하시는 것이 좋겠습니다. 다만, 보기에 RS-232C 레벨도 출력이 있고, TTL Level로도 연결이 가능한 모듈 같네요. 그런데, MAX232에 관한 언급은 보질 못하겠는 데, 아마 가능해 보이지만, 자세한 것은 그 쪽 회사에 문의하세요. USB를 통하는 것도 결국 가상 시리얼 포트를 통하여 하게 될겁니다. FT232BM 칩을 쓴 것 같더군요. 그리고, 함수 선언을 하고서 사용하는 것이 정상적인데, 함수 선언을 안하더라도 main문 위에 함수를 써 놓고 사용하게 되면, 대부분의 컴파일러에서 사용이 가능합니다. 하지만, 선언을 안한 상태에서 main문 밑에 함수가 있으면 사용이 안되는 경우가 발생합니다. 본사의 NAVER 까페와 이 곳 Q&A 중에 한군데만 질문하셔도 됩니다. 수고하세요~ >안녕하세요. 현재 ntc의 atmega128 pro 제품을 사용하고 있습니다. > > > >제가 궁금한 부분은 시리얼 통신을 하는 부분인데요.. 이 부분에 대해 잘 몰라서 질문을 드립니다.. > > > >먼저 제가 사용하는 아트메가 제품은 uart가 아닌 rs232인거 같은데 맞는지요?? > > > >설명서를 보면 맞는거 같은데요.. 엘씨디를 연결할때 AM-SLCD216 (Serial LCD 모듈)를 구입할건데.. > > > >그렇다면 uart 컨넥터가 아니라 rs232 쪽에다가 연결시켜야 하는게 맞는거죠?? > > > >만약 맞다면 아트메가의 rs232쪽과 엘씨디모듈의 rs232쪽을 연결할때는 어떤 변환장치가 필요없고, 3핀 컨넥턱로 연결만 해주면 되는건지 알고싶습니다. > > > >또한 연결후 따로 5V 전원을 해줘야겠지요? > > > >그리고 이번엔 코드부문인데요.. > > > >현재 아트메가의 포트A가 음성인식모듈로부터 신호를 받아서 해당 신호에 대한 처리를 하여 모터와 엘이디를 제어하는 회로를 만든상태입니다. > > > >여기에 추가로 엘씨디를 연결하여.. 음성모듈에서 어떤 신호가 들어왔을때 엘씨디에 지정해논 글자를 출력하게 하려고 합니다. > > > >어떠한 식으로 코드를 작성해야 할지 감이 잡히지 않네요;; > > > >예를들어 portb의 0번 포트에 1이라는 신호를 보낼땐 PORTB = 0x01 이라고 하면 되지만 > > > >시리얼일 경우엔 어떻게 해야하나요?? > > > >코드마법사에서 UART 부분에 체크를 해야 할거 같은데 어떤 부분에 체크해야 하는지 알고싶습니다. > > > >UART0, UART1 다 사용해야 하는지.. 그리고 아래부분에 RX TX 인터럽트 부분도 체크를 해야하는지도요.. > > > >현재 ICCAVR을 사용중이구요.. 제가 짜논 부분은 아래에 붙여놓겠습니다. > > > >---------------------------------------------------------------------------------------------------------- > > > >또하나 문의사항이 있습니다. > > > >http://www.nsystech.com/Data/XLCD%20User%20Guide_V1.2.pdf > > > >제가 현재 구입한 lcd 모듈입니다. 여기에 제가 사용하고 있는 atmega128 pro랑 도저히 어떻게 연결해야 할지 모르겠습니다.. > > > >그리고 usb232 라는 것을 가지고 있는데요.. TTL 시리얼 인거 같은데 어떻게 사용하는지 모르겠네요;; > > > >한쪽은 USB이고 한쪽은 4PIN TTL 인거 같은데.. 이것을 사용하여 귀사의 아트메가와 연결이 가능한지도 알고싶습니다. > > > >----------------------------------------------------------------------------------------------------------- > > > >코드가 참 허접합니다 ㅠㅠ > > > >코드를 짜면서 궁금한 점이 하나 더 있는데요.. 필요한 함수를 선언해서 사용할때요.. > > > >메인 윗부분에서 void 함수이름(void); 이런식으로 선언만 해놓고 메인문 밑에 함수 내용을 쓰는거랑 > > > >메인 윗부분에 void함수이름(void){함수내용} 이런식으로 한번에 적어놓는거랑 어떤 차이가 있는지도 알고싶네요~~ > > > >본의 아니게 질문 폭격을 하게 되었네요..ㅠㅠ 다음주 까지 졸작을 완성해야되서 조급한 마음에 남겨봅니다. > > > >좋은 하루 되시구요~~ 답변 부탁드립니다~~ ㅎㅎ > > > >------------------------------------------------------------------------------------------------------------- > > > >//ICC-AVR application builder : 2009-02-19 오후 6:03:30 >// Target : M128 >// Crystal: 16.000Mhz > >#include <iom128v.h> >#include <macros.h> > >#define LED_I PORTB >#define LED_O PORTC >#define MOTOR PORTD > >unsigned char SW; >unsigned char LED; > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0x00; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; //m103 output only > DDRC = 0x00; > 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 > XDIV = 0x00; //xtal divider > XMCRA = 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 >} > >void DELAY(int cnt); >void MOTOR_R(void); >void MOTOR_L(void); >void MOTOR_OFF(void); >void I_ON(void); >void I_OFF(void); >void O_ON(void); >void O_OFF(void); >void LED_C(void); > >void main(void) >{ > init_devices(); > > DDRA = 0xF8; > DDRB = 0x01; > DDRC = 0x01; > DDRD = 0x03; > > PORTA = 0x00; > PORTB = 0x00; > PORTC = 0x00; > PORTD = 0x00; > > while(1) > { > DELAY(500); > SW = PINA; > DELAY(500); > > switch(SW) > { > case 0x01 : MOTOR_R(); break; > case 0x02 : MOTOR_L(); break; > case 0x03 : MOTOR_OFF(); break; > case 0x04 : I_ON(); break; > case 0x05 : I_OFF(); break; > case 0x06 : O_ON(); break; > case 0x07 : O_OFF(); break; > default : ; > } > } >} > >void DELAY(int cnt) >{ > int i,j; > for(i=0;i<cnt;i++) > { > for(j=0;j<cnt;j++); > } >} > >void MOTOR_R(void) >{ > LED_C(); > MOTOR = 0x01; >} > >void MOTOR_L(void) >{ > LED_C(); > MOTOR = 0x02; >} > >void MOTOR_OFF(void) >{ > LED_C(); > MOTOR = 0x03; >} > >void I_ON(void) >{ > LED_C(); > LED_I = 0x01; >} > >void I_OFF(void) >{ > LED_C(); > LED_I = 0x00; >} > >void O_ON(void) >{ > LED = 0x01; > LED_O = 0x01; > DELAY(1000); > LED_O = 0x00; > DELAY(1000); >} > >void O_OFF(void) >{ > LED_C(); > LED = 0x00; > LED_O = 0x00; >} > >void LED_C(void) >{ > switch(LED) > { > case 0x01 : O_ON(); break; > case 0x02 : O_OFF(); break; > default : ; > } >} > > >
2919 답변완료at90s2313 윤성필 2009-05-18 1,342
얼마전 질문드린 사람입니다. 마이컴 시작한지 얼마 되지않아.... 우선 보드에 전압은 정전압 5v인가 합니다. 나머지 사항은 그림으로 올립니다.
관리자 답변 N.T.C · 2009-05-19
안녕하세요? 저희 NewTC를 이용하여 주셔서 감사합니다. 우선, ISP 커넥터의 1번핀에 VCC 연결이 안되어 있네요. 하지만 원인은 그것이 아니구요. 아마도 90S2313과 클럭과의 연결시에 바로 딱 붙여서 가장 짧은 거리에서 받을 수 있게 해야 하고, 그 쪽으로는 신호나전원선이 지나가면 안되는 데, 그 부분에서 잘못 만드신 것 같네요. 그 부분을 다시 만들기 바랍니다. 얼마전에도 비슷한 것을 해결해 준 적이 있습니다. 수고하세요. >얼마전 질문드린 사람입니다. > >마이컴 시작한지 얼마 되지않아.... > >우선 보드에 전압은 정전압 5v인가 합니다. > >나머지 사항은 그림으로 올립니다. > >
2918 답변완료UART 동시 사용 문의 신동관 2009-05-18 1,511
안녕하세요.. 항상 이곳에 도움을 받고 있는 신동관 이라 합니다. 제품 만드는 도중에 진전이 없어서 이렇게 문의 드립니다. 현제 UART0 -> RS232 -> PC (모니터링) UART1 -> RS485 -> 조이스틱컨트롤 이렇게 설정되어 있습니다. 조이스틱은 PC와 직접 연결을 하여 테스트 완료한 상태입니다. UART0로 PC와 연결되어서 키보드숫자로 모터제어가 가능하고 또한 모니터링 가능한 상태입니다. 문제는 조이스틱 컨트롤에서 보낸신호 848679780000000000000000000000000F 를 받지 못하고 있습니다. 현제 소스를 첨부하여 봅니다. 시간이 허락하시면 조언을 부탁드립니다. PS UART0, 1번을 교체하여 운영하여도 정상적으로 운영이 가능합니다. 조이스틱컨트롤러 신호가 들어오는지 알고 싶습니다. PC와 직접연결시 정상적으로 들어오고 있습니다. 감사합니다. //ICC-AVR application builder : 2009-05-15 오후 7:45:48 // Target : M128 // Crystal: 16.000Mhz #include <iom128v.h> #include <macros.h> #include <stdio.h> volatile unsigned char RS232; volatile unsigned char RS485; // printf 와 scanf 오류 방지. 시작 ------------------------------------ int putchar(char c) { while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty UDR0 = c; return c; } // scanf 함수 사용시 추가할 것. int getchar(void) { while ((UCSR0A & 0x80) == 0); return UDR0; } // printf 와 scanf 오류 방지. 종료 ------------------------------------ void port_init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //m103 output only DDRC = 0x00; PORTD = 0x00; DDRD = 0x00; PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; PORTG = 0x00; DDRG = 0x00; } //UART0 initialize // desired baud rate: 9600 // actual: baud rate:9615 (0.2%) // char size: 8 bit // parity: Disabled void uart0_init(void) { UCSR0B = 0x00; //disable while setting baud rate UCSR0A = 0x00; UCSR0C = 0x06; UBRR0L = 0x67; //set baud rate lo UBRR0H = 0x00; //set baud rate hi UCSR0B = 0xD8; } #pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC void uart0_rx_isr(void) { //uart has received a character in UDR RS232=UDR0; } #pragma interrupt_handler uart0_tx_isr:iv_USART0_TXC void uart0_tx_isr(void) { //character has been transmitted } //UART1 initialize // desired baud rate:9600 // actual baud rate:9615 (0.2%) // char size: 8 bit // parity: Disabled void uart1_init(void) { UCSR1B = 0x00; //disable while setting baud rate UCSR1A = 0x00; UCSR1C = 0x06; UBRR1L = 0x67; //set baud rate lo UBRR1H = 0x00; //set baud rate hi UCSR1B = 0xD8; } #pragma interrupt_handler uart1_rx_isr:iv_USART1_RXC void uart1_rx_isr(void) { //uart has received a character in UDR RS485=UDR1; } #pragma interrupt_handler uart1_tx_isr:iv_USART1_TXC void uart1_tx_isr(void) { //character has been transmitted } //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(); uart1_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 } #define MOTOR_PORT1 PORTC #define MOTOR_DDR DDRC #define PWM11_ON (MOTOR_PORT1|=0x01) #define PWM11_OFF (MOTOR_PORT1&=0xFE) #define DIR11_ON (MOTOR_PORT1|=0x02) #define DIR11_OFF (MOTOR_PORT1&=0xFD) #define ENABLE11_OFF (MOTOR_PORT1|=0x04) #define ENABLE11_ON (MOTOR_PORT1&=0xFB) #define BREAK11_ON (MOTOR_PORT1|=0x08) #define BREAK11_OFF (MOTOR_PORT1&=0xF7) #define PWM12_ON (MOTOR_PORT1|=0x10) #define PWM12_OFF (MOTOR_PORT1&=0xEF) #define DIR12_ON (MOTOR_PORT1|=0x20) #define DIR12_OFF (MOTOR_PORT1&=0xDF) #define ENABLE12_ON (MOTOR_PORT1|=0x40) #define ENABLE12_OFF (MOTOR_PORT1&=0xBF) #define MOTOR_PORT2 PORTA #define MOTOR_DDR2 DDRA #define PWM21_ON (MOTOR_PORT2|=0x01) #define PWM21_OFF (MOTOR_PORT2&=0xFE) #define DIR21_ON (MOTOR_PORT2|=0x02) #define DIR21_OFF (MOTOR_PORT2&=0xFD) #define ENABLE21_OFF (MOTOR_PORT2|=0x04) #define ENABLE21_ON (MOTOR_PORT2&=0xFB) #define BREAK21_ON (MOTOR_PORT2|=0x08) #define BREAK21_OFF (MOTOR_PORT2&=0xF7) #define PWM22_ON (MOTOR_PORT2|=0x10) #define PWM22_OFF (MOTOR_PORT2&=0xEF) #define DIR22_ON (MOTOR_PORT2|=0x20) #define DIR22_OFF (MOTOR_PORT2&=0xDF) #define ENABLE22_ON (MOTOR_PORT2|=0x40) #define ENABLE22_OFF (MOTOR_PORT21&=0xBF) // 시간 지연 함수 void delay(int n) { volatile int i,j; for(i=0;i<n;i++) { for(j=0;j<100;j++); } } void main(void) { volatile unsigned char sw; init_devices(); DDRA = 0xFF; // PORTA 출력지정 DDRC = 0xFF; // PORTC 출력지정 printf(" ROV 제작 테스트 \\n\\r\\r\\r\\r\\r\\r"); while(1){ printf("RS485 %d \\r\\n", RS485); // DIRX_ON 정회전 // DIRX_OFF 역회전 // PWMX_ON PWM 신호 1 // PWMX_OFF PWM 신호 0 // PWMX_OFF PWM 신호로 속도를 제어한다. // sw = PIND; // 포트 D(스위치)를 일어 들임 switch(RS232) { case '1': DIR11_ON; {PWM11_ON; printf("1번 모터 정회전 \\n\\r"); break;} case '2': DIR11_OFF; {PWM11_ON; printf("1번 모터 역회전 \\n\\r"); break;} case '3': DIR12_ON; {PWM12_ON; printf("2번 모터 정회전 \\n\\r"); break;} case '4': DIR12_OFF; {PWM12_ON; printf("2번 모터 역회전 \\n\\r"); break;} case '5': DIR21_ON; {PWM21_ON; printf("3번 모터 정회전 \\n\\r"); break;} case '6': DIR21_OFF; {PWM21_ON; printf("3번 모터 역회전 \\n\\r"); break;} case '7': DIR22_ON; {PWM22_ON; printf("4번 모터 정회전 \\n\\r"); break;} case '8': DIR22_OFF; {PWM22_ON; printf("4번 모터 역회전 \\n\\r"); break;} // case 0x01: DIR11_ON; {PWM11_ON; printf("1번 모터 정회전 \\n\\r"); break;} // case 0x02: DIR11_OFF; {PWM11_ON; printf("1번 모터 역회전 \\n\\r"); break;} // case 0x04: DIR12_ON; {PWM12_ON; printf("2번 모터 정회전 \\n\\r"); break;} // case 0x08: DIR12_OFF; {PWM12_ON; printf("2번 모터 역회전 \\n\\r"); break;} // case 0x10: DIR21_ON; {PWM21_ON; printf("3번 모터 정회전 \\n\\r"); break;} // case 0x20: DIR21_OFF; {PWM21_ON; printf("3번 모터 역회전 \\n\\r"); break;} // case 0x40: DIR22_ON; {PWM22_ON; printf("4번 모터 정회전 \\n\\r"); break;} // case 0x80: DIR22_OFF; {PWM22_ON; printf("4번 모터 역회전 \\n\\r"); break;} default: break; } // switch end } // while end } // main end
관리자 답변 N.T.C · 2009-05-19
안녕하세요? 고객님, 늘 저희 NewTC 를 이용하여 주셔서 감사합니다. 우선, scanf로 받을 때, %s로 받아 보세요. 데이터의 양이 많을 때는 %s로 받아서 분석하여 처리하는 것이 좋습니다. 또한, 하나씩 받을 경우에는 링버퍼를 선언하여 받자마자 버퍼에 집어 넣어서 나중에 꺼내서 사용해야 합니다. 수고하세요. > >안녕하세요.. 항상 이곳에 도움을 받고 있는 신동관 이라 합니다. > >제품 만드는 도중에 진전이 없어서 이렇게 문의 드립니다. > >현제 UART0 -> RS232 -> PC (모니터링) > >UART1 -> RS485 -> 조이스틱컨트롤 > >이렇게 설정되어 있습니다. > >조이스틱은 PC와 직접 연결을 하여 테스트 완료한 상태입니다. > >UART0로 PC와 연결되어서 키보드숫자로 모터제어가 가능하고 또한 모니터링 > >가능한 상태입니다. > >문제는 조이스틱 컨트롤에서 보낸신호 848679780000000000000000000000000F 를 > >받지 못하고 있습니다. > >현제 소스를 첨부하여 봅니다. 시간이 허락하시면 조언을 부탁드립니다. > >PS UART0, 1번을 교체하여 운영하여도 정상적으로 운영이 가능합니다. > >조이스틱컨트롤러 신호가 들어오는지 알고 싶습니다. > >PC와 직접연결시 정상적으로 들어오고 있습니다. > >감사합니다. > > > >//ICC-AVR application builder : 2009-05-15 오후 7:45:48 >// Target : M128 >// Crystal: 16.000Mhz > >#include <iom128v.h> >#include <macros.h> >#include <stdio.h> > >volatile unsigned char RS232; >volatile unsigned char RS485; > >// printf 와 scanf 오류 방지. 시작 ------------------------------------ >int putchar(char c) >{ > while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty > > UDR0 = c; > return c; >} >// scanf 함수 사용시 추가할 것. >int getchar(void) >{ > while ((UCSR0A & 0x80) == 0); > return UDR0; >} > >// printf 와 scanf 오류 방지. 종료 ------------------------------------ > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0x00; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; //m103 output only > DDRC = 0x00; > PORTD = 0x00; > DDRD = 0x00; > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; > PORTG = 0x00; > DDRG = 0x00; >} > >//UART0 initialize >// desired baud rate: 9600 >// actual: baud rate:9615 (0.2%) >// char size: 8 bit >// parity: Disabled >void uart0_init(void) >{ > UCSR0B = 0x00; //disable while setting baud rate > UCSR0A = 0x00; > UCSR0C = 0x06; > UBRR0L = 0x67; //set baud rate lo > UBRR0H = 0x00; //set baud rate hi > UCSR0B = 0xD8; >} > >#pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC >void uart0_rx_isr(void) >{ > //uart has received a character in UDR > RS232=UDR0; >} > >#pragma interrupt_handler uart0_tx_isr:iv_USART0_TXC >void uart0_tx_isr(void) >{ > //character has been transmitted >} > >//UART1 initialize >// desired baud rate:9600 >// actual baud rate:9615 (0.2%) >// char size: 8 bit >// parity: Disabled >void uart1_init(void) >{ > UCSR1B = 0x00; //disable while setting baud rate > UCSR1A = 0x00; > UCSR1C = 0x06; > UBRR1L = 0x67; //set baud rate lo > UBRR1H = 0x00; //set baud rate hi > UCSR1B = 0xD8; >} > >#pragma interrupt_handler uart1_rx_isr:iv_USART1_RXC >void uart1_rx_isr(void) >{ > //uart has received a character in UDR > RS485=UDR1; >} > >#pragma interrupt_handler uart1_tx_isr:iv_USART1_TXC >void uart1_tx_isr(void) >{ > //character has been transmitted >} > >//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(); > uart1_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 >} > >#define MOTOR_PORT1 PORTC >#define MOTOR_DDR DDRC >#define PWM11_ON (MOTOR_PORT1|=0x01) >#define PWM11_OFF (MOTOR_PORT1&=0xFE) >#define DIR11_ON (MOTOR_PORT1|=0x02) >#define DIR11_OFF (MOTOR_PORT1&=0xFD) >#define ENABLE11_OFF (MOTOR_PORT1|=0x04) >#define ENABLE11_ON (MOTOR_PORT1&=0xFB) >#define BREAK11_ON (MOTOR_PORT1|=0x08) >#define BREAK11_OFF (MOTOR_PORT1&=0xF7) >#define PWM12_ON (MOTOR_PORT1|=0x10) >#define PWM12_OFF (MOTOR_PORT1&=0xEF) >#define DIR12_ON (MOTOR_PORT1|=0x20) >#define DIR12_OFF (MOTOR_PORT1&=0xDF) >#define ENABLE12_ON (MOTOR_PORT1|=0x40) >#define ENABLE12_OFF (MOTOR_PORT1&=0xBF) > >#define MOTOR_PORT2 PORTA >#define MOTOR_DDR2 DDRA >#define PWM21_ON (MOTOR_PORT2|=0x01) >#define PWM21_OFF (MOTOR_PORT2&=0xFE) >#define DIR21_ON (MOTOR_PORT2|=0x02) >#define DIR21_OFF (MOTOR_PORT2&=0xFD) >#define ENABLE21_OFF (MOTOR_PORT2|=0x04) >#define ENABLE21_ON (MOTOR_PORT2&=0xFB) >#define BREAK21_ON (MOTOR_PORT2|=0x08) >#define BREAK21_OFF (MOTOR_PORT2&=0xF7) >#define PWM22_ON (MOTOR_PORT2|=0x10) >#define PWM22_OFF (MOTOR_PORT2&=0xEF) >#define DIR22_ON (MOTOR_PORT2|=0x20) >#define DIR22_OFF (MOTOR_PORT2&=0xDF) >#define ENABLE22_ON (MOTOR_PORT2|=0x40) >#define ENABLE22_OFF (MOTOR_PORT21&=0xBF) > > >// 시간 지연 함수 >void delay(int n) >{ > volatile int i,j; > for(i=0;i<n;i++) > { > for(j=0;j<100;j++); > } >} > >void main(void) >{ > > volatile unsigned char sw; > init_devices(); > DDRA = 0xFF; // PORTA 출력지정 > DDRC = 0xFF; // PORTC 출력지정 > > printf(" ROV 제작 테스트 \\n\\r\\r\\r\\r\\r\\r"); > while(1){ > > > > > printf("RS485 %d \\r\\n", RS485); > >// DIRX_ON 정회전 >// DIRX_OFF 역회전 >// PWMX_ON PWM 신호 1 >// PWMX_OFF PWM 신호 0 >// PWMX_OFF PWM 신호로 속도를 제어한다. > >// sw = PIND; // 포트 D(스위치)를 일어 들임 > switch(RS232) { > case '1': DIR11_ON; {PWM11_ON; printf("1번 모터 정회전 \\n\\r"); break;} > case '2': DIR11_OFF; {PWM11_ON; printf("1번 모터 역회전 \\n\\r"); break;} > case '3': DIR12_ON; {PWM12_ON; printf("2번 모터 정회전 \\n\\r"); break;} > case '4': DIR12_OFF; {PWM12_ON; printf("2번 모터 역회전 \\n\\r"); break;} > > case '5': DIR21_ON; {PWM21_ON; printf("3번 모터 정회전 \\n\\r"); break;} > case '6': DIR21_OFF; {PWM21_ON; printf("3번 모터 역회전 \\n\\r"); break;} > case '7': DIR22_ON; {PWM22_ON; printf("4번 모터 정회전 \\n\\r"); break;} > case '8': DIR22_OFF; {PWM22_ON; printf("4번 모터 역회전 \\n\\r"); break;} > >// case 0x01: DIR11_ON; {PWM11_ON; printf("1번 모터 정회전 \\n\\r"); break;} >// case 0x02: DIR11_OFF; {PWM11_ON; printf("1번 모터 역회전 \\n\\r"); break;} >// case 0x04: DIR12_ON; {PWM12_ON; printf("2번 모터 정회전 \\n\\r"); break;} >// case 0x08: DIR12_OFF; {PWM12_ON; printf("2번 모터 역회전 \\n\\r"); break;} > >// case 0x10: DIR21_ON; {PWM21_ON; printf("3번 모터 정회전 \\n\\r"); break;} >// case 0x20: DIR21_OFF; {PWM21_ON; printf("3번 모터 역회전 \\n\\r"); break;} >// case 0x40: DIR22_ON; {PWM22_ON; printf("4번 모터 정회전 \\n\\r"); break;} >// case 0x80: DIR22_OFF; {PWM22_ON; printf("4번 모터 역회전 \\n\\r"); break;} > > default: break; > } // switch end > > } // while end >} // main end > >
2917 답변완료디지털 아날로그 컨버터 질문입니다. 이진수 2009-05-18 1,362
DC/DC컨버터 제작을 하는데 입력전압이 일정치 않아 입력전압을 받아 듀티를 자동제어 하려고 합니다. 입력은 어떤포트에서 받아야하고 출력은 어느포트로 가면 됩니까?? 포트(A~F)와 핀번호를 포함하여 자세하게 알려 주십시오. 부탁드립니다. (커패시터를의 충전시간을 이용하여 전압을 아는 방법을 해보았는데 시간이 많이 걸리 더군요..)
관리자 답변 N.T.C · 2009-05-19
안녕하세요...고객님.. AC=>DC컨버터 이야기인가요? 사용하시는 MUC가 ATMEGA128 맞습니까? 둘다 맞다면 입력은 PORTF로 받아서 ADC컨버터 기능을 사용하시면 됩니다. 출력은 타이머 카운터를 이용해서 OCx핀으로 출력을 하셔도 되지만 직접 아무핀이나 출력을 잡아서 프로그램해 주셔도 됩니다. 질문은 좀더 구체적으로 정확하게 해주시면 감사하겠습니다. 감사합니다. >DC/DC컨버터 제작을 하는데 입력전압이 일정치 않아 입력전압을 받아 듀티를 자동제어 하려고 합니다. 입력은 어떤포트에서 받아야하고 출력은 어느포트로 가면 됩니까?? >포트(A~F)와 핀번호를 포함하여 자세하게 알려 주십시오. 부탁드립니다. >(커패시터를의 충전시간을 이용하여 전압을 아는 방법을 해보았는데 시간이 많이 걸리 더군요..)
2916 답변완료스테핑모터클럭 구동모듈 AM-MS2 질문요... 황현중 2009-05-18 1,407
스테핑 모터클럭 구동모듈 AM-MS2 을 구입했는데요... 회로도좀 알수없을까요?? AM-C2P는 회로도가 있는데 AM-MS2는 회로도가 없네 요... 부품리스트와 같이 알려주시면 않될까요??
관리자 답변 N.T.C · 2009-05-18
안녕하세요....고객님... AM-MS2는 아직 회로도가 공개되지 않습니다. 저희 회사 제품중 회로도가 공개된 것은 자료실==>>기존자료실에서 "회로도"검색하시면 나옵니다. MS2는 SLA7062를 사용하므로 SLA7062 datasheet를 참고하시면 될듯 합니다. 별 도움을 드리지 못해 죄송합니다. 감사합니다. >스테핑 모터클럭 구동모듈 AM-MS2 을 구입했는데요... > >회로도좀 알수없을까요?? AM-C2P는 회로도가 있는데 AM-MS2는 회로도가 없네 > >요... 부품리스트와 같이 알려주시면 않될까요??
2915 답변완료SE-DS350 관련 구동 문의입니다. 이병석 2009-05-18 1,293
SE-DS350을 구입했는데, 보통 서보랑 다르게 선이 2가닥이더군요. 질문있습니다. 그냥 전원만 넣으면 돌아가는 방식인가요? 아니면 보통의 서보모터처럼 duty ratio를 조절해야 하나요? 그리고 역방향으로도 돌겠죠? 정확한 구동 스펙이 없어서 문의드립니다. 답변 부탁드립니다.
관리자 답변 N.T.C · 2009-05-18
안녕하세요..고객님... 설명서를 제대로 안보신것 같네요. SE-DS350은 서보형 DC모터입니다. 즉 형태는 서보형태지만 DC모터라는 이야기입니다. 따라서 선도 2가닥만 필요한거구요. 감사합니다. >SE-DS350을 구입했는데, 보통 서보랑 다르게 선이 2가닥이더군요. > >질문있습니다. > >그냥 전원만 넣으면 돌아가는 방식인가요? 아니면 보통의 서보모터처럼 > >duty ratio를 조절해야 하나요? > >그리고 역방향으로도 돌겠죠? > >정확한 구동 스펙이 없어서 문의드립니다. > >답변 부탁드립니다. > >
2914 답변완료DC 라인트레이서 킷트 이창환 2009-05-18 1,391
제가 DC 라인트레이서 키트(KR-DL16) 구입의사가 있는데여 키트를 사면 cd가 같이 온다고하는데여 거기에 c프로그램으로 프로그맹이이 되어있는거져? 그리고 컴파일러를 avr스튜디오로 사용가능한지요? 그리고 66000원이 부가세 포함인가여?
관리자 답변 N.T.C · 2009-05-18
안녕하세요...고객님... >거기에 c프로그램으로 프로그맹이이 되어있는거져? avr은 대부분이 c언어로 되어있습니다. 물론 저희 소스도 c로 짜여진것입니다. >그리고 컴파일러를 avr스튜디오로 사용가능한지요? avr스튜디오는 다운로더만 가능합니다. 컴파일은 winavr과 연동을 시켜야 합니다. 어떤 컴파일을 사용하시든지 고객님께서 잘할 수 있는 컴파일러를 사용하시면 됩니다. >그리고 66000원이 부가세 포함인가여? 넵, 부가세 포함 가격입니다. 감사합니다. >제가 DC 라인트레이서 키트(KR-DL16) >구입의사가 있는데여 >키트를 사면 cd가 같이 온다고하는데여