로그인 | 회원가입 | 주문 조회
총 10,743개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
5163 답변완료다시 문의요 박준연 2010-05-19 1,427
안녕하세요 이미지 1번째에 ISP frequency 1.206khz 를 제일 높은 주파수로 변경해서 사용하십시오 (1.843Mhz 로 변경) 변경을 했는데도 에러 메시지가 나오면 점검을 받아 보시길 바랍니다 이렇게 답변해주셨는데 원래 제일 높은 주파수로 설정되어있는걸 낮은 주파수로 하나씩 변경하면서 모두 해봤는데 안되었습니다. 지금 타겟보드와 연결이 안되는것 같은데 이런상황에 맞는 팁같은건 없나요? 제가 올린 스샷으로는 하드웨어 문제인건지 제가 설정을 잘못해서 그런건지 정확하게 알려주실수는 없는건가요? 새로산 보드에서 실행했을때도 저렇게 나오는데 isp가 문제가 있는건지 정확한 답변바랍니다.
관리자 답변 NEWTC · 2010-05-19
안녕하세요 고객님이 사용하실때 ISP frequency 1.206khz 저절로 변경된 값이라면 USBISP 문제가 있어 보입니다. 점검을 보내실떄는 타겟보드와 함께 보내시길 바랍니다. 직접확인해야 정확히 알수 있습니다. 수고하세요 >안녕하세요 > >이미지 1번째에 ISP frequency 1.206khz 를 제일 높은 주파수로 변경해서 사용하십시오 >(1.843Mhz 로 변경) > >변경을 했는데도 에러 메시지가 나오면 점검을 받아 보시길 바랍니다 > >이렇게 답변해주셨는데 > >원래 제일 높은 주파수로 설정되어있는걸 낮은 주파수로 하나씩 >변경하면서 모두 해봤는데 안되었습니다. >지금 타겟보드와 연결이 안되는것 같은데 이런상황에 맞는 팁같은건 없나요? >제가 올린 스샷으로는 >하드웨어 문제인건지 제가 설정을 잘못해서 그런건지 정확하게 알려주실수는 없는건가요? >새로산 보드에서 실행했을때도 저렇게 나오는데 isp가 문제가 있는건지 정확한 답변바랍니다.
5162 답변완료스텝모터 9kg 모터 탈조(?)퍼짐(?)현상 때문에 질문드립니다. 김호연 2010-05-18 1,428
귀사의 스텝모터9kg 급과 모터드라이버 MS2를 사용하여 LED자상을 출력하는 프로젝트를 하는 학생입니다. 현재 가속테이블을 이용하여 모터 RPM을 600까지 회전시키려 하고 있으나 무슨 이유인지 400RPM에서 계속 모터가 죽어버리는 현상이 일어나고 있습니다. 회전체에서 모터 축과 중심이 맞지 않을까 생각하여 회전체 H/W를 전부 재구성 해서 돌려본결과 같은 400RPM에서 퍼짐현상이 계속 일어나네요.(아직 흔들림이 조금은 남아 있습니다) 가속테이블에서 좀 더 시간을 두며 천천히 올려야 할지, 아니면 모터가 흔들려서 퍼지는 현상이 일어나는지, 그것도 아니면 모터가 고장이 난것인지 회전체가 무거워서인지...(약 1KG정도 되는것 같습니다.) 도저히 감이 오지 않네요; 가속테이블 그래프 캡쳐 사진과 모터를 돌리는 동영상을 첨부합니다. (디카로 세워서 찍었더니 90도 회전에 되어버렸네요, 하지만 보시는데 지상은 없을것같아 그냥 첨부합니다.) 감사합니다.
관리자 답변 NEWTC · 2010-05-19
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 아마도, 그 경우라면 충분한 전류를 공급해 주어야 하는 데, 전류 부족이 아닐까 싶습니다. MS2에 공급해 주는 모터 전원으로 100W 24V SMPS를 사용하시고, 반드시 나름 굵은 선으로 전원을 연결하여 주시기 바랍니다. 또한, 아래 내용도 확인하여 보세요. FAQ의 CS2P, MS2 스테핑 모터 구동부 사용시 확인하실 내용입니다. - 아래 - 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=40 수고하세요. >귀사의 스텝모터9kg 급과 모터드라이버 MS2를 사용하여 LED자상을 > >출력하는 프로젝트를 하는 학생입니다. > >현재 가속테이블을 이용하여 모터 RPM을 600까지 회전시키려 하고 있으나 > >무슨 이유인지 400RPM에서 계속 모터가 죽어버리는 현상이 일어나고 있습니다. > >회전체에서 모터 축과 중심이 맞지 않을까 생각하여 회전체 H/W를 > >전부 재구성 해서 돌려본결과 같은 400RPM에서 퍼짐현상이 > >계속 일어나네요.(아직 흔들림이 조금은 남아 있습니다) > > 가속테이블에서 좀 더 시간을 두며 천천히 올려야 할지, > >아니면 모터가 흔들려서 퍼지는 현상이 일어나는지, > >그것도 아니면 모터가 고장이 난것인지 > >회전체가 무거워서인지...(약 1KG정도 되는것 같습니다.) > >도저히 감이 오지 않네요; > >가속테이블 그래프 캡쳐 사진과 > >모터를 돌리는 동영상을 첨부합니다. > >(디카로 세워서 찍었더니 90도 회전에 되어버렸네요, 하지만 보시는데 > >지상은 없을것같아 그냥 첨부합니다.) > > >감사합니다.
5161 답변완료안녕하세요^^ 김영훈 2010-05-18 1,299
안녕하세요. 지난 13일 용산본사로 4명이서 떼거지로 찾아간 학생들입니다^^; 다름이아니고 RF간의 통신은 확인해주셨었고, 저희도 다시 해보니 정상적으로 작동이 됩니다. 그러나...저희가 AM-128PL을 사용해서 할때는 좀처럼 잘 되지가 않아서요.. 저희 구조가 AM-128PL -----RF (무선구간) RF-----PC 인데요... 코드비전 avr을 사용하여 AM-128PL에 코딩을할때... 어떻게 설정을 해야하는지 자세히 부탁드립니다. 혹시 예제파일이 있다면 어디있는지좀 알려주셨으면 합니다. 제가 예제파일을 찾아보고 실행을 해보긴했는데..전혀 작동을 안해서요.. 꼭 부탁드립니다! 제가 테스트해보고싶은것은 AM-128PL에서 PC로 RF통신을 사용하여 "TEST" 라는 문구 한번 보내보고싶어요 ㅠ.ㅠ
관리자 답변 NEWTC · 2010-05-19
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 우선, 첨부한 예제 소스는 UART 테스트 소스인데, 코드비전으로 짠 소스입니다. 강좌->AVR 강좌에서 컴파일러별 UART 강좌를 참고 바랍니다. 거기에 소스도 있습니다. 하지만, 거기 소스는 통신속도를 9,600bps 로 맞춰 놓은 것이라서, 첨부 소스에 115,200 bps로 변경하여 올려 드렸습니다. RFMOD 를 디폴트 셋팅으로 쓸 경우, 첨부 소스를 AM-128PL에 올려 쓰면 됩니다. 그런데, AM-128PL과 RF 모듈과의 사이에 1:1 케이블로 하세요. 그렇게 하면, RX와 TX가 서로 크로스로 연결되게 됩니다. 반드시 이 부분 확인하세요. 수고하세요. >안녕하세요. >지난 13일 용산본사로 4명이서 떼거지로 찾아간 학생들입니다^^; >다름이아니고 RF간의 통신은 확인해주셨었고, 저희도 다시 해보니 정상적으로 작동이 됩니다. >그러나...저희가 AM-128PL을 사용해서 할때는 좀처럼 잘 되지가 않아서요.. >저희 구조가 AM-128PL -----RF (무선구간) RF-----PC 인데요... >코드비전 avr을 사용하여 AM-128PL에 코딩을할때... >어떻게 설정을 해야하는지 자세히 부탁드립니다. >혹시 예제파일이 있다면 어디있는지좀 알려주셨으면 합니다. >제가 예제파일을 찾아보고 실행을 해보긴했는데..전혀 작동을 안해서요.. >꼭 부탁드립니다! >제가 테스트해보고싶은것은 AM-128PL에서 PC로 RF통신을 사용하여 >"TEST" 라는 문구 한번 보내보고싶어요 ㅠ.ㅠ
5160 답변완료레인센서를 만들었는데요~AT MEGA128에 연결할때,, parkji 2010-05-18 1,453
레인센서를 만들었습니다. 회로는 첨부했어요.^^ㅎ 회로 보시면 저희는 1,2번 엔드게이트만 사용했습니다. 1,2번 엔드게이트 출력인 3번을 병렬로 8,9번에 넣어서 10번으로 출력을 했습니다. 10번 뒤에 출력에 저항과 트랜지스터도 모두 달았는데요.....그 뒤에 LED를 달아서 제대로 동작하는지 아닌지도 확인을 했습니다. 근데 여기서 질문이 있습니다. 저희가 10번 다리에서 바로 출력선을 뽑아서 사용했는데요.. 이 센서로 ATMEGA128에 연결 할 때 방법을 잘 몰라서 문의드립니다. 이 출력선과128사이에 제어 할 수 있는 무언가가 들어가야 하는 것인지..아니면 그 출력선을 바로 포트핀에 꼽아서 사용 할 수 있는 것인지.. 5.8V전원전압을 넣었을 때 출력은 5.66V정도 나왔는데요...전류는 0.41mA가 나오네요.. 혹시 질문이 이해 안되신다면..질문 내용에 추가해야 할 사항 좀 알려주세요.. 죄송합니다 ㅜ_ㅠㅎ
관리자 답변 NEWTC · 2010-05-19
안녕하세요? 제대로 동작하는 것을 확인했다니, 잘 동작한다니 다행입니다. 그래서, 하드웨어는 회로는 자세히 보지 않았습니다. LED를 달아서 확인했다는 것은 LED가 켜지고 꺼지고 하나 봅니다. 즉, 출력이 디지탈인가 봐요. 0 또는 1로 나오나 보죠. 그런데, 1일 때의 그 전압이 5.5V를 넣어서는 것 같은데, 그 경우, 4.5~ 5.5V 사이값 즉, 5V 값으로 만들어 주는 것이 중요합니다. 따라서, 간단하게 끝단에 저항으로 값을 배분해서, 5V를 출력하도록 맞춰 주세요. 그런 후에, GND는 GND 쪽에 그 출력선 5V 출력으로 변경한 것은 포트의 핀 하나를 할당하여 연결한 후, AVR에서 포트 입력으로 받으면 됩니다. 우선, AVR에서 입력 받기 전에 0 또는 1(즉, 0V <--> 5V) 로 변경하는 지 확인하여 보세요. 수고하세요. >레인센서를 만들었습니다. 회로는 첨부했어요.^^ㅎ >회로 보시면 저희는 1,2번 엔드게이트만 사용했습니다. >1,2번 엔드게이트 출력인 3번을 병렬로 8,9번에 넣어서 10번으로 출력을 했습니다. > >10번 뒤에 출력에 저항과 트랜지스터도 모두 달았는데요.....그 뒤에 LED를 달아서 >제대로 동작하는지 아닌지도 확인을 했습니다. >근데 여기서 질문이 있습니다. >저희가 10번 다리에서 바로 출력선을 뽑아서 사용했는데요.. >이 센서로 ATMEGA128에 연결 할 때 방법을 잘 몰라서 문의드립니다. > >이 출력선과128사이에 제어 할 수 있는 무언가가 들어가야 하는 것인지..아니면 >그 출력선을 바로 포트핀에 꼽아서 사용 할 수 있는 것인지.. >5.8V전원전압을 넣었을 때 출력은 5.66V정도 나왔는데요...전류는 0.41mA가 나오네요.. > >혹시 질문이 이해 안되신다면..질문 내용에 추가해야 할 사항 좀 알려주세요.. >죄송합니다 ㅜ_ㅠㅎ
5159 답변완료예제소스질문 황선민 2010-05-18 1,431
가속도 센서 예제 소스에서요 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; } 이부분이 하는 역할을 잘 모르겠습니다 int putchar(char c) { while((UCSR0A & 0x20)==0x00); //UDR0 empty??? UDR0 = c; return c; } 이 함수가 데이터를 USART를 통해 PC로 전송하는 함수인가요? 만약 그렇다면 buf[0], buf[1]을 먼저 전송하는 이유를 알려주셨으면 합니다 그리고 출력 데이터를 degree로 받으려면 따로 코드를 넣어야 하는거 같은데 맞나요? 마지막으로 자이로 센서와 가속도 센서를 동시에 사용하기 위해서 PORT F의 1, 5, 9, 10번 핀을 자이로 센서의 1,5, 9, 10번핀에 연결하고 가속도 센서의 1번핀을 PORT F의 3번 핀에, 9, 10 번핀을 다른 PORT의 9번 10번 핀과 연결했는데요 이렇게 하면 동시에 사용 가능한건가요? 두 센서 모두 1축의 데이터만이 필요해서 나머지 핀은 연결하지 않았습니다
관리자 답변 NEWTC · 2010-05-18
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 답변하여 드릴께요. >가속도 센서 예제 소스에서요 > > 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; > } > >이부분이 하는 역할을 잘 모르겠습니다 ==> 함께 제공하는 윈도 프로그램 중 마우스 관련 프로그램에서 마우스의 버튼으로 인식하게 하기 위한 약속된 코드를 생성합니다. 즉, 마우스 오른쪽 버튼인지 왼쪽 버튼인지 어느것이 눌렸는 지를 확인합니다. > >int putchar(char c) >{ > while((UCSR0A & 0x20)==0x00); //UDR0 empty??? > > UDR0 = c; > return c; >} > >이 함수가 데이터를 USART를 통해 PC로 전송하는 함수인가요? ==> printf 함수의 내장함수입니다. 이 부분을 고쳐넣게 되면, UART1로 전송하게 할 수도 있고, LCD 로 출력하게 만들 수도 있습니다. > >만약 그렇다면 buf[0], buf[1]을 먼저 전송하는 이유를 알려주셨으면 합니다 > ==> 패킷의 시작임을 명확하게 알려주기 위하여 시작이라고 약속된 두 바이트를 전송합니다. >그리고 출력 데이터를 degree로 받으려면 따로 코드를 넣어야 하는거 같은데 맞나요? > ==> 네, 맞습니다. 자료실->기존자료실에서 가속도 라고 쳐서 나오는 데이터 들과 FAQ에서 가속도 센서 관련되서 FAQ에 만들어 놓은 자료를 참고 바랍니다. >마지막으로 자이로 센서와 가속도 센서를 동시에 사용하기 위해서 PORT F의 1, 5, 9, 10번 핀을 > >자이로 센서의 1,5, 9, 10번핀에 연결하고 가속도 센서의 1번핀을 PORT F의 3번 핀에, > >9, 10 번핀을 다른 PORT의 9번 10번 핀과 연결했는데요 이렇게 하면 동시에 사용 가능한건가요? > >두 센서 모두 1축의 데이터만이 필요해서 나머지 핀은 연결하지 않았습니다 ==> 센서마다 한 축만 필요한 경우 네 그렇게 하면 되겠습니다. 수고하세요.
5158 답변완료KR-SL16라인트레이서(반제품)에 프로그래밍이 안되서 글올렸던 사람입니다. 김만석 2010-05-18 1,401
주어진 씨디 안에 있는 라인트레이서 구동 예제소스를 icc avr을 이용해 프로그래밍했는데 프로그래밍은 된거 같은데 포트A에 연결한 4개짜리 센서보드가 전원LED가 들어오지않고 인식도 되지않습니다. 포트B에 연결하면 전원LED도 들어오고 센서도 인식하는 것으로 보입니다. 센서보드 테스트용 예제소스를 프로그래밍해본 결과 여전히 센서보드에 전원LED와 인식이 전혀 되지않습니다. 이 예제소스를 넣었을 때에도 포트B에 센서보드를 연결하면 위와 같은 현상이 일어납니다. 그리고 센서보드 테스트용 예제소스를 ATmega128기준에서 16으로 설정하는 방법, 바뀌어야될 소스내용과 프로그래밍 방법을 알려주시면 감사하겠습니다. 첨부한 파일은 씨디의 라인트레이서 구동 예제소스입니다.
관리자 답변 NEWTC · 2010-05-18
안녕하세요? 고객님, 자료실-> 기존자료실에서 16 이라고 치면 여러가지 소스가 나옵니다. 참고 하면 되겠습니다. 그리고, 128 소스를 16으로 포팅하는 것 관련해서는 일단, 16용으로 마법사를 이용하여 기본 소스를 생성한 이후, 128 소스에서 쓰던 만들어서 쓰는 부분을 가져다가 합쳐야 합니다. 기초가 부족하신 듯 한데, 강좌->동영상 강좌를 참고하면 좋겠습니다. AVR로 라인트레이서 만들기가 있고, 거기에 적외선 LED 제어 강좌를 보면 좋겠네요. 또한, 기본 소스를 만드는 것 관련된 부분을 참고하세요. - 아래 - 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=16 수고하세요. >주어진 씨디 안에 있는 라인트레이서 구동 예제소스를 icc avr을 이용해 >프로그래밍했는데 프로그래밍은 된거 같은데 포트A에 연결한 4개짜리 센서보드가 >전원LED가 들어오지않고 인식도 되지않습니다. >포트B에 연결하면 전원LED도 들어오고 센서도 인식하는 것으로 보입니다. >센서보드 테스트용 예제소스를 프로그래밍해본 결과 여전히 센서보드에 전원LED와 인식이 전혀 되지않습니다. 이 예제소스를 넣었을 때에도 포트B에 센서보드를 연결하면 위와 같은 현상이 일어납니다. >그리고 센서보드 테스트용 예제소스를 ATmega128기준에서 16으로 설정하는 방법, 바뀌어야될 소스내용과 프로그래밍 방법을 알려주시면 감사하겠습니다. > >첨부한 파일은 씨디의 라인트레이서 구동 예제소스입니다.
5157 답변완료질문있습니다! 정혜현 2010-05-18 1,296
#include <iom128v.h> #include <macros.h> #include <stdio.h> #define MOTOR_PORT PORTC #define MOTOR_DDR DDRC #define PWM1_ON (MOTOR_PORT|=0x01) #define PWM1_OFF (MOTOR_PORT&=0xFE) #define DIR1_ON (MOTOR_PORT|=0x02) #define DIR1_OFF (MOTOR_PORT&=0xFD) #define ENABLE1_OFF (MOTOR_PORT|=0x04) #define ENABLE1_ON (MOTOR_PORT&=0xFB) #define BREAK1_ON (MOTOR_PORT|=0x08) #define BREAK1_OFF (MOTOR_PORT&=0xF7) #define PWM2_ON (MOTOR_PORT|=0x10) #define PWM2_OFF (MOTOR_PORT&=0xEF) #define DIR2_ON (MOTOR_PORT|=0x20) #define DIR2_OFF (MOTOR_PORT&=0xDF) #define ENABLE2_ON (MOTOR_PORT|=0x40) #define ENABLE2_OFF (MOTOR_PORT&=0xBF) 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; } 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 = 0x08; } //ADC initialize // Conversion time: 75uS void adc_init(void) { ADCSRA = 0x00; //disable adc ADMUX = 0x00; //select adc input 0 ACSR = 0x80; //comparator off & 노이즈부분에서 향상시킴 ADCSRA = 0xC6; //11000110 //ADC활성화 및 ADC변환 시작 &단일모드 &64division } //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(); adc_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 } int putchar(char c) { while (((UCSR0A>>UDRE0)&0x01) == 0) ; UDR0 = c; return c; } int getchar(void) { while ((UCSR0A & 0x80) == 0); return UDR0; } void startConvertion(int ch) { ADCSRA = ADCSRA & 0x3f; //11000110*00111111=00000110 즉 우선 ADC OFF ADMUX = 0x40; //01000000 내부 Avcc를 Reference전압으로 이용 //ADC변환 data왼쪽 정렬하지않음 & ADC0 을 input 핀으로 사용함 ADCSRA = ADCSRA | 0xC0; //00000110+11000000=11000110 -> 다시 ADC켜고 시작 } unsigned int readConvertData(void) { unsigned int temp,cl,ch; while((ADCSRA & 0x10)==0); ADCSRA = ADCSRA | 0x10; cl = ADCL; //변환결과 저장 낮은 ADC7~ADC0 ch = ADCH; //변환 결과저장 ADC9~ADC8 temp = cl + ch*256; // 밑에 그림에서 보듯이 저런 식으로 저장 //출력은 10bit인데 8bit씩 나누어서 저장해야 하므로 ch에 256을 곱해줍니다. ADCSRA = ADCSRA | 0x10; return temp; } void delay(int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<600;j++); } } void motor(void) { int i,d; MOTOR_DDR = 0xff; // 모터포트 초기화 ENABLE1_ON; DIR1_ON; // Ch1 정방향 DIR2_ON; // Ch2 정방향 for(d=0; d<10; d++){ // 10 단계로 속도 조절 for(i=0; i<1000; i++){ // 100 번 PWM 발생 PWM1_ON; // PWM1 신호 1 PWM2_ON; // PWM2 신호 1 delay(10-d); PWM1_OFF; // PWM1 신호 0 PWM2_OFF; // PWM2 신호 0 delay(d); } } DIR1_OFF; // Ch1 역방향 DIR2_OFF; // Ch2 역방향 for(d=0; d<10; d++){ // 10 단계로 속도 조절 for(i=0; i<1000; i++){ // 100 번 PWM 발생 PWM1_ON; // PWM1 신호 1 PWM2_ON; // PWM2 신호 1 delay(10-d); PWM1_OFF; // PWM1 신호 0 PWM2_OFF; // PWM2 신호 0 delay(d); } } } void main(void) { unsigned int i, temp; init_devices(); PORTF = 0x00; motor(); while(1){ startConvertion(0); temp = readConvertData(); temp = (temp*5*10)/1024; printf("Tem.: %d \\n\\r", temp); motor(); delay(600); } } 이런식으로 소스를 구현하였는데 그랬더니 원래 motor(); 여기를 주석처리해서 온도센서 값만 하는걸로 하면 글씨가 제대로 나오는데 저런식으로 구현하니가 일본어가 나와여..왜이런거죠 ??
관리자 답변 NEWTC · 2010-05-18
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 같은 질문이 있는 데, 아래에 있는 내용을 참고 바랍니다. - 아래 - http://www.newtc.co.kr/board/view.php?id=qna&page=1&sn1=&divpage=3&sn=off&ss=on&sc=off&keyword=slcd&select_arrange=headnum&desc=asc&no=12558 수고하세요. >#include <iom128v.h> >#include <macros.h> >#include <stdio.h> > >#define MOTOR_PORT PORTC >#define MOTOR_DDR DDRC >#define PWM1_ON (MOTOR_PORT|=0x01) >#define PWM1_OFF (MOTOR_PORT&=0xFE) >#define DIR1_ON (MOTOR_PORT|=0x02) >#define DIR1_OFF (MOTOR_PORT&=0xFD) >#define ENABLE1_OFF (MOTOR_PORT|=0x04) >#define ENABLE1_ON (MOTOR_PORT&=0xFB) >#define BREAK1_ON (MOTOR_PORT|=0x08) >#define BREAK1_OFF (MOTOR_PORT&=0xF7) >#define PWM2_ON (MOTOR_PORT|=0x10) >#define PWM2_OFF (MOTOR_PORT&=0xEF) >#define DIR2_ON (MOTOR_PORT|=0x20) >#define DIR2_OFF (MOTOR_PORT&=0xDF) >#define ENABLE2_ON (MOTOR_PORT|=0x40) >#define ENABLE2_OFF (MOTOR_PORT&=0xBF) > > > >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; >} >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 = 0x08; >} >//ADC initialize >// Conversion time: 75uS >void adc_init(void) >{ > ADCSRA = 0x00; //disable adc > ADMUX = 0x00; //select adc input 0 > ACSR = 0x80; //comparator off & 노이즈부분에서 향상시킴 > ADCSRA = 0xC6; //11000110 >//ADC활성화 및 ADC변환 시작 &단일모드 &64division >} >//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(); > adc_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 >} >int putchar(char c) >{ > while (((UCSR0A>>UDRE0)&0x01) == 0) ; > UDR0 = c; > return c; >} >int getchar(void) >{ > while ((UCSR0A & 0x80) == 0); > return UDR0; >} > >void startConvertion(int ch) >{ > ADCSRA = ADCSRA & 0x3f; >//11000110*00111111=00000110 즉 우선 ADC OFF > ADMUX = 0x40; >//01000000 내부 Avcc를 Reference전압으로 이용 >//ADC변환 data왼쪽 정렬하지않음 & ADC0 을 input 핀으로 사용함 > ADCSRA = ADCSRA | 0xC0; >//00000110+11000000=11000110 -> 다시 ADC켜고 시작 >} > >unsigned int readConvertData(void) >{ > unsigned int temp,cl,ch; > while((ADCSRA & 0x10)==0); > ADCSRA = ADCSRA | 0x10; > cl = ADCL; //변환결과 저장 낮은 ADC7~ADC0 > ch = ADCH; //변환 결과저장 ADC9~ADC8 > temp = cl + ch*256; // 밑에 그림에서 보듯이 저런 식으로 저장 >//출력은 10bit인데 8bit씩 나누어서 저장해야 하므로 ch에 256을 곱해줍니다. > ADCSRA = ADCSRA | 0x10; > return temp; >} > >void delay(int n) >{ > volatile int i,j; > for(i=1;i<n;i++) > { > for(j=1;j<600;j++); > } >} > >void motor(void) >{ >int i,d; >MOTOR_DDR = 0xff; // 모터포트 초기화 > ENABLE1_ON; > > DIR1_ON; // Ch1 정방향 > DIR2_ON; // Ch2 정방향 > for(d=0; d<10; d++){ // 10 단계로 속도 조절 > for(i=0; i<1000; i++){ // 100 번 PWM 발생 > PWM1_ON; // PWM1 신호 1 > PWM2_ON; // PWM2 신호 1 > delay(10-d); > PWM1_OFF; // PWM1 신호 0 > PWM2_OFF; // PWM2 신호 0 > delay(d); > } > } > > DIR1_OFF; // Ch1 역방향 > DIR2_OFF; // Ch2 역방향 > for(d=0; d<10; d++){ // 10 단계로 속도 조절 > for(i=0; i<1000; i++){ // 100 번 PWM 발생 > PWM1_ON; // PWM1 신호 1 > PWM2_ON; // PWM2 신호 1 > delay(10-d); > PWM1_OFF; // PWM1 신호 0 > PWM2_OFF; // PWM2 신호 0 > delay(d); > } > } >} > >void main(void) >{ > unsigned int i, temp; > init_devices(); > > PORTF = 0x00; > motor(); > while(1){ > startConvertion(0); > temp = readConvertData(); > temp = (temp*5*10)/1024; > printf("Tem.: %d \\n\\r", temp); > > motor(); > delay(600); > } >} > > > > >이런식으로 소스를 구현하였는데 >그랬더니 원래 motor(); 여기를 주석처리해서 온도센서 값만 하는걸로 하면 글씨가 제대로 나오는데 > > >저런식으로 구현하니가 일본어가 나와여..왜이런거죠 ??
5156 답변완료LED를 포트 어디에 연결해야 하나요? 송지원 2010-05-18 1,382
//ICC-AVR application builder : 2007-12-23 오후 7:09:56 // Target : M128 // Crystal: 16.000Mhz #include <iom128v.h> #include <macros.h> void port_init(void) { PORTA = 0x00; DDRA = 0xff; PORTB = 0x00; DDRB = 0xff; PORTC = 0x00; //m103 output only DDRC = 0xff; PORTD = 0x00; DDRD = 0xff; PORTE = 0x00; DDRE = 0xff; PORTF = 0x00; DDRF = 0xff; PORTG = 0x00; DDRG = 0xff; } //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 = 0x08; } //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 SEI(); //re-enable interrupts //all peripherals are now initialized } void main(void) { volatile char data=0; int i=0; init_devices(); printf("\\n\\r\\n\\nATMega128 테스트 프로그램.\\n\\r"); PORTG = 0x01; while(1){ PORTD = ~PORTD; if(data==0){ printf("i : %d\\n\\r", i); i++; data = 0x01; PORTG = ~PORTG; } PORTA = data; PORTB = data; PORTC = data; PORTD = data; PORTE = data; PORTF = data; data = data << 1; delay(100); } } void delay(int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<600;j++); } }
관리자 답변 NEWTC · 2010-05-18
안녕하세요? 고객님, 사용하시고자 하는 포트에 연결하면 됩니다. 질문 내용으로 보아서, AVR에 관하여 전혀 기초가 없으신 듯 합니다. 우선, 강좌->AVR 동영상 강좌를 참고 바랍니다. 질문은 자세히 해 주시기 바랍니다. 수고하세요. >//ICC-AVR application builder : 2007-12-23 오후 7:09:56 >// Target : M128 >// Crystal: 16.000Mhz > >#include <iom128v.h> >#include <macros.h> > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0xff; > PORTB = 0x00; > DDRB = 0xff; > PORTC = 0x00; //m103 output only > DDRC = 0xff; > PORTD = 0x00; > DDRD = 0xff; > PORTE = 0x00; > DDRE = 0xff; > PORTF = 0x00; > DDRF = 0xff; > PORTG = 0x00; > DDRG = 0xff; >} > >//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 = 0x08; >} > >//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 > SEI(); //re-enable interrupts > //all peripherals are now initialized >} > >void main(void) >{ > volatile char data=0; > int i=0; > init_devices(); > > printf("\\n\\r\\n\\nATMega128 테스트 프로그램.\\n\\r"); > > PORTG = 0x01; > while(1){ > PORTD = ~PORTD; > if(data==0){ > printf("i : %d\\n\\r", i); > i++; > data = 0x01; > PORTG = ~PORTG; > } > PORTA = data; > PORTB = data; > PORTC = data; > PORTD = data; > PORTE = data; > PORTF = data; > > data = data << 1; > delay(100); > } >} > > >void delay(int n) >{ > volatile int i,j; > for(i=1;i<n;i++) > { > for(j=1;j<600;j++); > } >}
5155 답변완료안녕하세요 송지원 2010-05-18 1,394
여기서 제공하는 울트라 소닉과 SFR04초음파센서를 이용한 거리 탐지기 소스를 공부중인데요 제가 이쪽 전공이 아니라서 모르는게 너무 많아요 제가 적는게 어떤 내용인지 좀 알려주세요 ㅠㅠㅠㅠ PORTC = 0X00; //m103 output only 여기서 m103이 머죠? while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty UDR0 = c; 이게 무슨 내용인지 좀 알려주세요 ㅎ ASSR = 0x00 //set async mode UCSR0B, UBRR0가 먼지 좀 알려주세요 부탁드립니다 ^-^
관리자 답변 NEWTC · 2010-05-18
안녕하세요 예제코드 제공하지만 코드 분석을 해드릴지 하지않습니다. 아래 링크의 avr 강좌를 보시길 바랍니다. http://newtc.co.kr/board/zboard.php?id=mega128_lecture >PORTC = 0X00; //m103 output only 여기서 m103이 머죠? 예전의 mega103 단종으로 호환으로 사용할경우 c포트는 출력포트로만 사용이 가능합니다. >UDR0 = c; >이게 무슨 내용인지 좀 알려주세요 ㅎ > >ASSR = 0x00 //set async mode > >UCSR0B, UBRR0가 먼지 좀 알려주세요 uart 에 관련된 레지스터입니다. 자세한 내용 업로드된 데이타시트를 다운로드 받아 보시길 바랍니다. 수고하세요 >여기서 제공하는 울트라 소닉과 SFR04초음파센서를 이용한 거리 탐지기 소스를 공부중인데요 >제가 이쪽 전공이 아니라서 모르는게 너무 많아요 >제가 적는게 어떤 내용인지 좀 알려주세요 ㅠㅠㅠㅠ > >PORTC = 0X00; //m103 output only 여기서 m103이 머죠? > >while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty > >UDR0 = c; >이게 무슨 내용인지 좀 알려주세요 ㅎ > >ASSR = 0x00 //set async mode > >UCSR0B, UBRR0가 먼지 좀 알려주세요 >부탁드립니다 ^-^ > >
5154 답변완료NK243-01AT 스텝모터 데이터시트 없나여? 정진성 2010-05-18 1,339
얼마전 SE-SM243 스텝모터를 구입 하였는데 대체품으로 NK243으로 받았습니다. 그런데 두제품다 홈페이지에 있는 파일은 간단한 규격들만 나와있고 자세한 데이터 시트가 아니네여 모터에대한 자세한 데이터 시트를 메일로 보내주셨으면 합니다.
관리자 답변 NEWTC · 2010-05-18
안녕하세요 두개가 동일한 스펙입니다. http://www.newtc.co.kr/board/data/pds/스텝모터_SE_SM.pdf 수고하세요 >얼마전 SE-SM243 스텝모터를 구입 하였는데 대체품으로 NK243으로 받았습니다. >그런데 두제품다 홈페이지에 있는 파일은 간단한 규격들만 나와있고 자세한 데이터 >시트가 아니네여 모터에대한 자세한 데이터 시트를 메일로 보내주셨으면 합니다.
5153 답변완료AM-CS2P 구동질문입니다. 현경섭 2010-05-18 1,365
개발환경은 다음과 같습니다. AB-M128-B 개발보드 AM-CS2P 2개 (각각 개발보드 PORTB, PORTD에 연결) 12V 1.5A 전원어댑터 codevision c 컴파일러 PORTB에 연결된 AM-CS2P에 스텝모터 NK-243을 연결해서 기본적인 회전을 구현하려고 합니다. 아래와 같은 코드를 작성했는데 돌아가지 않네요. 어떻게 해야 할지 조언 부탁드립니다. 가변저항도 만져봤지만 변동사항이 없었습니다 #include<mega128.h> #include<delay.h> unsigned char CW12[8] = {0x09, 0x01, 0x05, 0x04, 0x06, 0x02, 0x0a, 0x08}; unsigned char CCW12[8] = {0x08, 0x0a, 0x02, 0x06, 0x04, 0x05, 0x01, 0x09}; void main(void) { int i; DDRA = 0x00; DDRB = 0xFF; DDRC = 0x00; DDRD = 0xFF; while(1) { for(i = 0; i < 8; i++) { PORTB = CW12[i]; delay_ms(200); } } }
관리자 답변 NEWTC · 2010-05-18
안녕하세요 직접 작성하신 코드는 대해서는 써포트를 하지 않습니다. AM-CS2P 모터 전원은 인가했는지요 ? 2핀 커넥터에 모터용 전원도 인가해야합니다. 아래에 있는 예제코드 비교 하시거나 hex파일를 다운로드하여 한번 돌려보시길 권장합니다. 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=cs2 수고하세요 >개발환경은 다음과 같습니다. > >AB-M128-B 개발보드 >AM-CS2P 2개 (각각 개발보드 PORTB, PORTD에 연결) >12V 1.5A 전원어댑터 >codevision c 컴파일러 > >PORTB에 연결된 AM-CS2P에 스텝모터 NK-243을 연결해서 기본적인 회전을 구현하려고 합니다. 아래와 같은 코드를 작성했는데 돌아가지 않네요. 어떻게 해야 할지 조언 부탁드립니다. 가변저항도 만져봤지만 변동사항이 없었습니다 > >#include<mega128.h> >#include<delay.h> > >unsigned char CW12[8] = {0x09, 0x01, 0x05, 0x04, 0x06, 0x02, 0x0a, 0x08}; >unsigned char CCW12[8] = {0x08, 0x0a, 0x02, 0x06, 0x04, 0x05, 0x01, 0x09}; > >void main(void) >{ > int i; > > DDRA = 0x00; > DDRB = 0xFF; > DDRC = 0x00; > DDRD = 0xFF; > > while(1) > { > for(i = 0; i < 8; i++) > { > PORTB = CW12[i]; > delay_ms(200); > } > } >}
5152 답변완료문의요 박준연 2010-05-18 1,231
AB-M128-B을 사용중입니다. avr studio에서 isp로 다운받으려는데요. read signature 저부분을 누르면 계속 경고뜨면서 보드와 맞지 않는다고 뜨네요 그래서 보드 하나더 사서 해봤는데 똑같은증상이네요 코드비젼이나 iccavr로 해도 안되구요 isp에서는 파란색불이 켜져있고 빨간색이 계속 깜박이네요 타겟보드와 연결이 안되있다는건데 뭐가 문제인지 모르겠네요 isp가 문제인건가요? 밑에그림은 코드비젼에서 다운로드 했을때 뜨는 화면입니다.
관리자 답변 NEWTC · 2010-05-18
안녕하세요 이미지 1번째에 ISP frequency 1.206khz 를 제일 높은 주파수로 변경해서 사용하십시오 (1.843Mhz 로 변경) 변경을 했는데도 에러 메시지가 나오면 점검을 받아 보시길 바랍니다. 수고하세요 >AB-M128-B을 사용중입니다. >avr studio에서 isp로 다운받으려는데요. >read signature 저부분을 누르면 계속 경고뜨면서 보드와 맞지 않는다고 뜨네요 >그래서 보드 하나더 사서 해봤는데 똑같은증상이네요 >코드비젼이나 iccavr로 해도 안되구요 >isp에서는 파란색불이 켜져있고 빨간색이 계속 깜박이네요 >타겟보드와 연결이 안되있다는건데 뭐가 문제인지 모르겠네요 >isp가 문제인건가요? >밑에그림은 코드비젼에서 다운로드 했을때 뜨는 화면입니다.
5151 답변완료ATmega128 Pro-c 개발키트 사용자입니다~;; 정용범 2010-05-18 1,306
궁금한 사항이 있어 문의 드립니다. 사용중 1W 파워 LED 24개를 사용하여 제어를 해볼려고 합니다. 기존에 제공된 12v 300mA 어뎁터는 계산해보니 1W 1개이상 전력은 안나오더라구요...;; 그레서 12v 2A 어뎁터로 바꿔서 사용해볼려고 하는대 혹시 사용중인 보드로는 안되는지 문의 드립니다... 전자쪽을 잘 몰라서..-0-.. 어뎁터를 꽃으면 보드가 탈것같아... 시도 전에 미리 문의드립니다..;;;
관리자 답변 NEWTC · 2010-05-18
안녕하세요 전류의 적게 인가하면 문제가 되지만 많이 인가하면 문제가 되지 않습니다. 전압에 맞게만 사용하시면 됩니다. 수고하세요 >궁금한 사항이 있어 문의 드립니다. > >사용중 1W 파워 LED 24개를 사용하여 제어를 해볼려고 합니다. >기존에 제공된 12v 300mA 어뎁터는 계산해보니 1W 1개이상 전력은 >안나오더라구요...;; > >그레서 12v 2A 어뎁터로 바꿔서 사용해볼려고 하는대 혹시 사용중인 >보드로는 안되는지 문의 드립니다... 전자쪽을 잘 몰라서..-0-.. > >어뎁터를 꽃으면 보드가 탈것같아... 시도 전에 미리 문의드립니다..;;; > >
5150 답변완료자이로 센서.. 박기훈 2010-05-18 1,295
구매하고 나서 한동안 약 한달간 안쓰다가 사용하려고 하는데.. x축 전압은 2.3V y축 전압은 0.2V 에서 큰 변동없이 머물러 있네요.. 센서가 이상한듯한데.. 급하게 사용해야해서요..
관리자 답변 NEWTC · 2010-05-18
안녕하세요 자이로 센서의 구동전압 3 ~3.3V 입니다. 초과하면 칩이 망가집니다. 축의 offset 전압은 1.23V 입니다. 전압이 이상하게 나오는 걸로 봐서는 칩이 밍가진듯합니다. 수고하세요 >구매하고 나서 한동안 약 한달간 안쓰다가 >사용하려고 하는데.. >x축 전압은 2.3V y축 전압은 0.2V 에서 큰 변동없이 머물러 있네요.. >센서가 이상한듯한데.. >급하게 사용해야해서요..
5149 답변완료AM_3AXIS_Ver2 관련문의 홍대웅 2010-05-18 1,411
가속도 센서를 이용해서 기울기를 측정하려고 합니다. 그런데 제가 사용하려는 회로가 5V를 Vcc로 사용하는데 이 센서는 3.3V에서 작동한다고 써있네요. 최대전압이 3.3V인지 알고 싶습니다. 그 이상의 전압이 인가되면 문제가 생기는지요? 그리고 X방향과 -X방향에서 출력되는 전압이 구별되나요? 빠른 답변 부탁드립니다.
관리자 답변 NEWTC · 2010-05-18
안녕하세요 5볼트에서 칩이 망가집니다. 3.3 볼트를 사용하시길 바랍니다. 1.65 볼트 기준으로 - + 값이 증가감합니다. 자세한 사항은 아래링크를 참조하시길 바랍니다. http://www.newtc.co.kr/board/view.php?id=faq&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=26 수고하세요 >가속도 센서를 이용해서 기울기를 측정하려고 합니다. > >그런데 제가 사용하려는 회로가 5V를 Vcc로 사용하는데 > >이 센서는 3.3V에서 작동한다고 써있네요. 최대전압이 3.3V인지 알고 싶습니다. > >그 이상의 전압이 인가되면 문제가 생기는지요? > >그리고 X방향과 -X방향에서 출력되는 전압이 구별되나요? > >빠른 답변 부탁드립니다.