로그인 | 회원가입 | 주문 조회
총 10,748개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
9638 답변완료적외선 모듈 문의 김상진 2016-05-22 1,558
irs4d 모듈 말씀하시는건가요? 이건 차체 전방에만 부착가능한데요. 저는 후방에 붙일 수 있는게 필요합니다. 더군가나 후방에 모터 드라이버모듈이 달려있어서 어떻게 적외선을 달아야할지.. 아 그리고 킷트가 책상에서 떨어지면서 기존에 달려있던 irs4d 모듈이 고장났는데 수리를 어떻게 해야하나요. 프로젝트가 마무리까지 몇일 안남았는데 난감하네요
관리자 답변 관리자 · 2016-05-24
안녕하세요? 고객님, 수리를 하려면, 본사에 방문하거나 택배로 가능한데, 시간이 얼마 없으면 직접 방문하시는 것이 좋습니다. 그리고, irs4d 모듈을 말하는 게 아닙니다. IR 센서로 1개 짜리 모듈이 별도로 만들어져 있습니다. 1개짜리를 3개 붙여서 전방, 약간 전우방, 약간 전좌방 이렇게 볼 수 있도록 만들어져 있습니다. 직접 오시면 이것도 보실 수가 있습니다. 감사합니다. > > > irs4d 모듈 말씀하시는건가요? > 이건 차체 전방에만 부착가능한데요. 저는 후방에 붙일 수 있는게 필요합니다. 더군가나 후방에 모터 드라이버모듈이 달려있어서 어떻게 적외선을 달아야할지.. > > > 아 그리고 킷트가 책상에서 떨어지면서 기존에 달려있던 irs4d 모듈이 고장났는데 수리를 어떻게 해야하나요. 프로젝트가 마무리까지 몇일 안남았는데 난감하네요 >
9637 답변완료적외선 모듈 문의 김상진 2016-05-21 1,587
sl128 라인트레이서 키트를 사용중인데 차량 후면부, 차량 중앙부에도 적외선 센서를 달았으면 합니다 따로 모듈 제작 가능한가요? 요소요 시간, 비용도 알려주세요
관리자 답변 관리자 · 2016-05-22
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 앞 뒤에 센서를 각각 달아서, 후방센서, 전방센서, 측면 센서 등을 지원하시기 위함이 아니신지요? 이것을 통하여 장애물 인식하여 회피기동 등을 하시려는 것이라면, 본사에 이미 그러한 모듈과 사용중이신 킷트에 장착 가능한 형태의 알미늄 기구부도 모두 개발되어 있습니다. 맞다면 다시 글 남겨 주시면 구매 하실 수 있도록 자세히 남겨 드리겠습니다. 감사합니다. > > > sl128 라인트레이서 키트를 사용중인데 > > 차량 후면부, 차량 중앙부에도 적외선 센서를 달았으면 합니다 > > 따로 모듈 제작 가능한가요? > 요소요 시간, 비용도 알려주세요 >
9636 답변완료atmega128 mcu 모듈 질문이요 오동현 2016-05-20 1,536
uart 통신 핀 부분이 3개인 것과 3개인 것이 있던데 그 둘의 차이는 무엇인가요? 성능에서도 차이나나요? 성능면에서도 차이가 난다면 핀이 몇 개인 것이 조금 더 좋나요?
관리자 답변 관리자 · 2016-05-22
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 저희 회사 모듈 중에 UART 커넥터가 핀이 3개인 것과 4개인 것의 차이는 통신 레벨의 차이입니다. 커넥터 3핀인 것, 예를 들어서 AM-128PRO의 UART 커넥터는 3핀으로 되어 있습니다. 이것은 뒷면에 보면 MAX3232라는 칩이 달려 있는 데, 이 칩이 레벨 체인저 역할을 합니다. " ATMEGA128의 TTL <-->RS-232C Level ----PC의 9핀 RS-232C 연결용 " 즉, AVR의 5V 레벨과 PC의 +-12V 레벨 사이를 맞춰주는 겁니다. 우리회사 뿐만이 아니라 모든 회사들이 UART 출력이 있다고 하면, 이 레벨이 TTL Level인지, RS-232C 레벨인지를 반드시 확인하고 레벨이 맞는것끼리 연결해 줘야 합니다. 본사의 모듈은 TTL Level(5V 레벨)과 CMOS Level(3.3V) 레벨을 4핀 커넥터에서 모두 지원하고 있으며, RS-232C 레벨은 3핀 커넥터에서 지원하고 있습니다. 참고하시기 바랍니다. 감사합니다. > > > uart 통신 핀 부분이 3개인 것과 4개인 것이 있던데 그 둘의 차이는 무엇인가요? > 성능에서도 차이나나요? > 성능면에서도 차이가 난다면 핀이 몇 개인 것이 조금 더 좋나요? >
9635 답변완료AD-usbisp V6.0 isp 지원 손용호 2016-05-20 1,635
AD-usbisp V6.0 isp 지원이 atmega8535에도 지원이 되는지 궁금합니다.
관리자 답변 관리자 · 2016-05-22
안녕하세요? 고객님, 네, 지원됩니다. 감사합니다. > > > AD-usbisp V6.0 isp 지원이 atmega8535에도 지원이 되는지 궁금합니다. >
9634 답변완료am 2560 유혁준 2016-05-20 1,641
AM-2560PRO OS : Window8 개발 환경 Codevision 2.05 profesional 단순히 UART통신을 통해 값을 보려 하는 목적입니다. baudrate 115200 , double rate 그리고 저 소스는 자사의 128 모듈에서 잘 돌아 갔던 소스 입니다. #include <mega2560.h> #include <delay.h> #include <string.h> #include <stdio.h> unsigned char ch; unsigned char Buf[100]; unsigned int N_RXDATA; void UART1_init(void) { delay_ms(10); DDRE = 0xfe; // Port : UART1 UBRR1H = 0; // invalid UBRR1L = 16; // buade rate 115200 bps UCSR1A = 0x02; // trans. spd x2 UCSR1B = 0x98; // uart comm., RXC interrupt enable UCSR1C = 0x06; // no parity, 1 stop bit, 8 data bit } void UART1_putch(unsigned char ch) {while((UCSR1A & 0x20) == 0); UDR1 = ch;} void UART1_putstrf(flash unsigned char *str) {unsigned int i=0; for(;str[i] != 0; i++) UART1_putch(str[i]);} interrupt [USART1_RXC] void UART1_getch(void) {ch=UDR1; Buf[N_RXDATA]=ch; N_RXDATA=N_RXDATA+1;} void UART0_init(void) { delay_ms(10); DDRD = 0xfe; // Port : UART0 UBRR0H = 0; UBRR0L = 16; UCSR0A = 0x02; UCSR0B = 0x18; UCSR0C = 0x06; } void main(void) { unsigned int i=0; SREG.7 = 1; UART0_init(); UART1_init(); while(1){ memset(Buf,0x00,sizeof(Buf)); ch=0x00; N_RXDATA=0; //UART1_putstrf("<D\r\n"); //while(ch != 0x0a) {} // 수신 데이터가 \n이면 루프 해제 printf("hello world\n\r");//이렇게 해도 serial상 나와야 맞음 delay_ms(10); } }
관리자 답변 관리자 · 2016-05-22
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. baudrate 115200 , double rate, n-8-1 로 하였습니다. 아래1과 같이 UART0 초기화 코드를 수정하여 사용하세요. 그런데, 현재 2.1% 에러인데, 통신 에러를 더 없애려면, 크리스탈을 14.7456MHz로 변경하고, 초기화 코드도 아래2와 같이 변경하면 됩니다. - 아래 1 - //UART0 initialize // desired baud rate: 115200 // actual: baud rate:117647 (2.1%) // char size: 8 bit // parity: Disabled void uart0_init(void) { UCSR0B = 0x00; //disable while setting baud rate UCSR0A = 0x02; UCSR0C = 0x06; UBRR0L = 0x10; //set baud rate lo UBRR0H = 0x00; //set baud rate hi UCSR0B = 0x18; } - 아래 2- //UART0 initialize // desired baud rate: 115200 // actual: baud rate:115200 (0.0%) // char size: 8 bit // parity: Disabled void uart0_init(void) { UCSR0B = 0x00; //disable while setting baud rate UCSR0A = 0x02; UCSR0C = 0x06; UBRR0L = 0x0F; //set baud rate lo UBRR0H = 0x00; //set baud rate hi UCSR0B = 0x18; } 감사합니다. > > > AM-2560PRO > OS : Window8 > 개발 환경 Codevision 2.05 profesional > > 단순히 UART통신을 통해 값을 보려 하는 목적입니다. > baudrate 115200 , double rate > 그리고 저 소스는 자사의 128 모듈에서 잘 돌아 갔던 소스 입니다. > > #include <mega2560.h> > #include <delay.h> > #include <string.h> > #include <stdio.h> > > unsigned char ch; > unsigned char Buf[100]; > unsigned int N_RXDATA; > void UART1_init(void) > { > delay_ms(10); > DDRE = 0xfe; // Port : UART1 > UBRR1H = 0; // invalid > UBRR1L = 16; // buade rate 115200 bps > UCSR1A = 0x02; // trans. spd x2 > UCSR1B = 0x98; // uart comm., RXC interrupt enable > UCSR1C = 0x06; // no parity, 1 stop bit, 8 data bit > } > void UART1_putch(unsigned char ch) > {while((UCSR1A & 0x20) == 0); UDR1 = ch;} > void UART1_putstrf(flash unsigned char *str) > {unsigned int i=0; for(;str[i] != 0; i++) UART1_putch(str[i]);} > interrupt [USART1_RXC] void UART1_getch(void) > {ch=UDR1; Buf[N_RXDATA]=ch; N_RXDATA=N_RXDATA+1;} > void UART0_init(void) > { > delay_ms(10); > DDRD = 0xfe; // Port : UART0 > UBRR0H = 0; > UBRR0L = 16; > UCSR0A = 0x02; > UCSR0B = 0x18; > UCSR0C = 0x06; > } > void main(void) > { > unsigned int i=0; > > SREG.7 = 1; > > UART0_init(); > UART1_init(); > > while(1){ > memset(Buf,0x00,sizeof(Buf)); > ch=0x00; > N_RXDATA=0; > > //UART1_putstrf("<D\r\n"); > //while(ch != 0x0a) {} // 수신 데이터가 \n이면 루프 해제 > printf("hello world\n\r");//이렇게 해도 serial상 나와야 맞음 > delay_ms(10); > } > } >
9633 답변완료AM-2560PRO 유혁준 2016-05-20 1,723
AM-2560PRO OS : Window8 개발 환경 Codevision 2.05 profesional 단순히 UART통신을 통해 값을 보려 하는 목적입니다. 그리고 저 소스는 자사의 128 모듈에서 잘 돌아 갔던 소스 입니다. #include <mega2560.h> #include <delay.h> #include <string.h> #include <stdio.h> unsigned char ch; unsigned char Buf[100]; unsigned int N_RXDATA; void UART1_init(void) { delay_ms(10); DDRE = 0xfe; // Port : UART1 UBRR1H = 0; // invalid UBRR1L = 16; // buade rate 115200 bps UCSR1A = 0x02; // trans. spd x2 UCSR1B = 0x98; // uart comm., RXC interrupt enable UCSR1C = 0x06; // no parity, 1 stop bit, 8 data bit } void UART1_putch(unsigned char ch) {while((UCSR1A & 0x20) == 0); UDR1 = ch;} void UART1_putstrf(flash unsigned char *str) {unsigned int i=0; for(;str[i] != 0; i++) UART1_putch(str[i]);} interrupt [USART1_RXC] void UART1_getch(void) {ch=UDR1; Buf[N_RXDATA]=ch; N_RXDATA=N_RXDATA+1;} void UART0_init(void) { delay_ms(10); DDRD = 0xfe; // Port : UART0 UBRR0H = 0; UBRR0L = 16; UCSR0A = 0x02; UCSR0B = 0x18; UCSR0C = 0x06; } void main(void) { unsigned int i=0; SREG.7 = 1; UART0_init(); UART1_init(); while(1){ memset(Buf,0x00,sizeof(Buf)); ch=0x00; N_RXDATA=0; //UART1_putstrf("<D\r\n"); //while(ch != 0x0a) {} // 수신 데이터가 \n이면 루프 해제 printf("hello world\n\r");//이렇게 해도 serial상 나와야 맞음 delay_ms(10); } }
관리자 답변 관리자 · 2016-05-20
UART0에서 bps 통신 속도를 얼마에 Double speed인지 아닌지, 등을 명기해 주세요. 그것에 따라서, 다 달라집니다. > > > AM-2560PRO > OS : Window8 > 개발 환경 Codevision 2.05 profesional > > 단순히 UART통신을 통해 값을 보려 하는 목적입니다. > 그리고 저 소스는 자사의 128 모듈에서 잘 돌아 갔던 소스 입니다. > > #include <mega2560.h> > #include <delay.h> > #include <string.h> > #include <stdio.h> > > unsigned char ch; > unsigned char Buf[100]; > unsigned int N_RXDATA; > void UART1_init(void) > { > delay_ms(10); > DDRE = 0xfe; // Port : UART1 > UBRR1H = 0; // invalid > UBRR1L = 16; // buade rate 115200 bps > UCSR1A = 0x02; // trans. spd x2 > UCSR1B = 0x98; // uart comm., RXC interrupt enable > UCSR1C = 0x06; // no parity, 1 stop bit, 8 data bit > } > void UART1_putch(unsigned char ch) > {while((UCSR1A & 0x20) == 0); UDR1 = ch;} > void UART1_putstrf(flash unsigned char *str) > {unsigned int i=0; for(;str[i] != 0; i++) UART1_putch(str[i]);} > interrupt [USART1_RXC] void UART1_getch(void) > {ch=UDR1; Buf[N_RXDATA]=ch; N_RXDATA=N_RXDATA+1;} > void UART0_init(void) > { > delay_ms(10); > DDRD = 0xfe; // Port : UART0 > UBRR0H = 0; > UBRR0L = 16; > UCSR0A = 0x02; > UCSR0B = 0x18; > UCSR0C = 0x06; > } > void main(void) > { > unsigned int i=0; > > SREG.7 = 1; > > UART0_init(); > UART1_init(); > > while(1){ > memset(Buf,0x00,sizeof(Buf)); > ch=0x00; > N_RXDATA=0; > > //UART1_putstrf("<D\r\n"); > //while(ch != 0x0a) {} // 수신 데이터가 \n이면 루프 해제 > printf("hello world\n\r");//이렇게 해도 serial상 나와야 맞음 > delay_ms(10); > } > } >
9632 답변완료AD-USBISP V03.6 관련 질문 최영철 2016-05-23 1,752
안녕하세요. 원래 AD-USBISP V6.0 을 사용하다가 홈페이지를 보고 AD-USBISP V03.6 을 구매하였습니다. tool 은 ATmel studio 6.1을 사용하여 ATmega 128A 을 사용합니다. 이에, 연결 시 tool 과 link 는 되나 D/L 시 target board 를 읽을 수 없는 error 가 발생합니다. 홈페이지에 6.1 version 을 사용 시 Atmega 128 도 가능하다고 나와 있는데 무었이 문제인지요.... ISP V6.0 은 이상 없습니다. 빠른 답변 부탁드립니다.
관리자 답변 관리자 · 2016-05-24
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 타겟 전압을 읽을 수 없는 부분 빼고는 나머지 기능은 모두 정상이라야 합니다. 혹시, 드라이버가 정상적으로 잡힌 것인지 확인하시고, 그 부분 이상이 없다면, 본사에서 점검받아 보셔야 합니다. http://www.newtc.co.kr/dpshop/bbs/board.php?bo_table=m52&wr_id=128724&page=6 혹시 드라이버 이상이면, 여기서 드라이버 다운로드 받아서 해 보세요. 감사합니다. > > > 안녕하세요. > 원래 AD-USBISP V6.0 을 사용하다가 홈페이지를 보고 > AD-USBISP V03.6 을 구매하였습니다. > > tool 은 ATmel studio 6.1을 사용하여 ATmega 128A 을 사용합니다. > > 이에, 연결 시 tool 과 link 는 되나 D/L 시 target board 를 읽을 수 없는 error 가 발생합니다. > > 홈페이지에 6.1 version 을 사용 시 Atmega 128 도 가능하다고 나와 있는데 > 무었이 문제인지요.... ISP V6.0 은 이상 없습니다. > > 빠른 답변 부탁드립니다. >
9631 답변완료AB-M128-B 관련 질문 오동현 2016-05-23 1,571
스위치 모듈을 해당 보드의 E포트에 꽂아서 사용하면 LED 모듈을 어느 장소에 꽂더라도 불이 안들어오는 부분이 있더군요... 제품에 하자가 있다는 것이 아니라 왜 그런지 이유가 알고 싶습니다 ㅎㅎ 혹시 모르니 소스파일도 첨부하겠습니다. 참고로 mcu 모듈은 AM-128PRO 를 사용합니다.
관리자 답변 관리자 · 2016-05-24
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. AB-M128-B 모듈에는 원래는 AM-128PL 모듈이 꾳혀 있습니다. 그 이유는 AM-128Pro에는 max3232 칩이 붙어 있어서, uart핀들에 영향을 주기 때문입니다. PORTD2, PORTD3와 PORTE0, PORTE1이 그것입니다. 특히, RX 쪽인 PE0와 PD2가 영향을 많이 받을 수 있습니다. 그래서, 원래 붙어 있는 AM-128PL 모듈을 사용하면 max3232 칩이 붙어 있지 않기 때문에 그런 영향이 없습니다. AB-M128-B 모듈은 그런 목적으로 보드의 다른 회로들이 포트에 영향을 주는 것을 없도록 설계된 보드입니다. 감사합니다. > > > 스위치 모듈을 해당 보드의 E포트에 꽂아서 사용하면 LED 모듈을 어느 장소에 꽂더라도 불이 안들어오는 부분이 있더군요... 제품에 하자가 있다는 것이 아니라 왜 그런지 이유가 알고 싶습니다 ㅎㅎ > 혹시 모르니 소스파일도 첨부하겠습니다. > 참고로 mcu 모듈은 AM-128PRO 를 사용합니다. >
9630 답변완료delay 함수 김상진 2016-05-26 1,860
스테핑모터 라인트레이서 소스코드에 delay 함수는 몇초짜리인가요? delay(5)를 내장함수 delay_ms나 delay_us 로 바꾸려면 몇초를 입력해야하나요? atmega128. codevision 사용합니다
관리자 답변 관리자 · 2016-05-27
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용해 주셔서 감사합니다. delay(5)는 정확히 측정하지않았지만, 대략 1ms정도 됩니다. 감사합니다. > > > 스테핑모터 라인트레이서 소스코드에 > > delay 함수는 > > 몇초짜리인가요? > > delay(5)를 내장함수 delay_ms나 delay_us 로 바꾸려면 > > 몇초를 입력해야하나요? > > atmega128. codevision 사용합니다 >
9629 답변완료수고하십니다 SE-SM243, AM-CS2P 관련하여 질문있습니다 김준영 2016-05-26 1,922
현재 SE-SM243스텝모터(2상), AM-CS2P스텝모터 모듈(12V) 로 라인트레이서 진행중입니다 제가 원하는 것은 속도 향상 부분인데요 소스코드는 아래와 같습니다 제 에상으론 delay부분을 줄이면 속도가 올라갈줄알았는데 변화가 없고 delay(5)가 최적의 딜레이 인거 같더라고요 소스코드를 수정하여 속도를 향상할수 있는 방법이 있을까요? #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdio.h> #define MOTOR_PORT PORTD #define MOTOR_PORT_DDR DDRD #define SENSOR_PORT PINC void port_init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; DDRC = 0x00; PORTD = 0x00; DDRD = 0xFF; PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; PORTG = 0x00; DDRG = 0x03; } void init_devices(void) { 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 } /* 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(int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<400;j++); } } void main(void) { unsigned char sensor; volatile unsigned char stepleft=0, stepright=0; init_devices(); MOTOR_PORT_DDR = 0xff; while(1){ sensor = SENSOR_PORT & 0x0F; switch(sensor) case 0x0f://0x00001111 stepright = RIGHTmotorOneClock(stepright, 1); stepleft = LEFTmotorOneClock(stepleft, 0); delay(5); PORTB= 0x00; break; case 0x0b://0x00001011 stepleft = LEFTmotorOneClock(stepleft, 0); delay(5); PORTB= 0x02; break; case 0x0d://0x00001101 stepright = RIGHTmotorOneClock(stepright, 1); delay(5); PORTB= 0x01; break; default: stepright = RIGHTmotorOneClock(stepright, 1); stepleft = LEFTmotorOneClock(stepleft, 0); delay(5); PORTB= 0x00; break; } MOTOR_PORT = stepleft|stepright; } }
관리자 답변 관리자 · 2016-05-27
안녕하세요?고객님, 저희 뉴티씨 제품을 이용해 주셔서 감사합니다. 속도향상을 위해서는 타이머를 사용하세요. 감사합니다. > > > 현재 SE-SM243스텝모터(2상), AM-CS2P스텝모터 모듈(12V) 로 라인트레이서 진행중입니다 > > 제가 원하는 것은 속도 향상 부분인데요 > > 소스코드는 아래와 같습니다 > > 제 에상으론 delay부분을 줄이면 속도가 올라갈줄알았는데 변화가 없고 delay(5)가 최적의 딜레이 인거 같더라고요 > > 소스코드를 수정하여 속도를 향상할수 있는 방법이 있을까요? > > #include <avr/io.h> > #include <util/delay.h> > #include <avr/interrupt.h> > #include <stdio.h> > > #define MOTOR_PORT PORTD > #define MOTOR_PORT_DDR DDRD > #define SENSOR_PORT PINC > > void port_init(void) > { > PORTA = 0x00; > DDRA = 0x00; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; > DDRC = 0x00; > PORTD = 0x00; > DDRD = 0xFF; > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; > PORTG = 0x00; > DDRG = 0x03; > } > > void init_devices(void) > { > 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 > } > > > /* 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(int n) > { > volatile int i,j; > for(i=1;i<n;i++) > { > for(j=1;j<400;j++); > } > } > > > void main(void) > { > > unsigned char sensor; > volatile unsigned char stepleft=0, stepright=0; > > init_devices(); > > MOTOR_PORT_DDR = 0xff; > > while(1){ > sensor = SENSOR_PORT & 0x0F; > switch(sensor) > case 0x0f://0x00001111 > stepright = RIGHTmotorOneClock(stepright, 1); > stepleft = LEFTmotorOneClock(stepleft, 0); > delay(5); > PORTB= 0x00; > break; > case 0x0b://0x00001011 > stepleft = LEFTmotorOneClock(stepleft, 0); > delay(5); > PORTB= 0x02; > break; > case 0x0d://0x00001101 > stepright = RIGHTmotorOneClock(stepright, 1); > delay(5); > PORTB= 0x01; > break; > default: > stepright = RIGHTmotorOneClock(stepright, 1); > stepleft = LEFTmotorOneClock(stepleft, 0); > delay(5); > PORTB= 0x00; > break; > } > MOTOR_PORT = stepleft|stepright; > } > } >
9628 답변완료USB-ISP 윈도우10 전용 조성환 2016-05-25 1,722
따로있나요?
관리자 답변 관리자 · 2016-05-26
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용해 주셔서 감사합니다. 따로 없고, 최신버전 뉴티씨 usbisp는 모두 윈도우10이 지원됩니다. AD-USBISP V03.6과 V6.0받으시면 됩니다. 감사합니다. > > > 따로있나요? >
9627 답변완료AB-M128-B 회로도 요청 이수현 2016-05-24 1,749
kr-dl128 라인트레이서를 구매했는데 안에 동봉도니 cd에 AB-M128-B회로도가 아닌 AB-M128-pro회로도가 있습니다. AB-M128-B회로도를 보고 싶은데 올려주세요.
관리자 답변 관리자 · 2016-05-24
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. A/S신청 쪽에서 영수증을 올려 주시면, 회로도를 올려 드릴 수 있겠습니다. 감사합니다. > > > kr-dl128 라인트레이서를 구매했는데 안에 동봉도니 cd에 > > AB-M128-B회로도가 아닌 AB-M128-pro회로도가 있습니다. > > AB-M128-B회로도를 보고 싶은데 올려주세요. >
9626 답변완료am 3axis v03 에서 감지하는 각 축별로의 수치값들을 읽는 코드 보내주세요 이한수 2016-05-14 1,742
am 3axis v03 에서 읽는 값들을 각도로 환산하는 코드 보내주세요
관리자 답변 관리자 · 2016-05-15
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용해 주셔서 감사합니다. 가속도 센서는 정지 상태에서는 기울기 값을 각 축당 알수 있습니다. 각 축의 adc값 예제 소스나 3차원마우스 용 소스 등은 학습용으로만, 공개되어 있으므로 참고하시기 바랍니다. 또한 자료실의 확장모듈쪽에 보면 3축으로 검색하면,pdf자료로 걸려 있으니 참고바랍니다. 저희가 필요한 것을 짜드리지는 않으니 참고 부탁드립니다. 감사합니다. > > > am 3axis v03 에서 읽는 값들을 각도로 환산하는 코드 보내주세요 >
9625 답변완료jtag연결질문 이수현 2016-05-19 1,819
AVR용 USB-JTAG을 이용해서 라인트레이서 kr-dl128에 연결해서 디버깅을 하려고 합니다. AVR용 USB-JTAG사용법을 보고 선을 연결했는데 안되서 질문합니다. 1. AVR용 USB-JTAG회로도에는 reset핀이 있는데 제품위에 프린트되있는 곳에는 reset이 없는데 연결을 어떻게 해야되나요 안해도 되는건가요? 2. avr-studio 4.19버전으로 디버깅을 진행하려고하는데 그럼 AVR용 USB-JTAG제품을 업그레이드 해야하나요? 3. AVR용 USB-JTAG으로 디버깅을 진행할때 보드에 AVR용 USB-JTAG통해 전원이 들어가는거 아닌가요? vcc와 gnd를 연결했는데 보드에 불이 안들어옵니다.
관리자 답변 관리자 · 2016-05-19
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 사용하시는 AVR용 USB-JTAG의 정확한 제품번호가 무엇인지요? KR-DL128 키트에는 JTAG 커넥터가 없으므로, ISP만 연결이 가능합니다. JTAG 연결이 가능한 보드의 예는 AB-M128USB-C 또는 AB-M128PRO-A 등의 보드가 있습니다. JTAG 커넥터를 엉뚱하게 연결하면 잘못 연결하면 망가질 수 있습니다. 감사합니다. > > > AVR용 USB-JTAG을 이용해서 라인트레이서 kr-dl128에 연결해서 디버깅을 하려고 합니다. > AVR용 USB-JTAG사용법을 보고 선을 연결했는데 안되서 질문합니다. > > 1. AVR용 USB-JTAG회로도에는 reset핀이 있는데 제품위에 프린트되있는 곳에는 reset이 없는데 연결을 어떻게 해야되나요 안해도 되는건가요? > > 2. avr-studio 4.19버전으로 디버깅을 진행하려고하는데 그럼 AVR용 USB-JTAG제품을 업그레이드 해야하나요? > > 3. AVR용 USB-JTAG으로 디버깅을 진행할때 보드에 AVR용 USB-JTAG통해 전원이 들어가는거 아닌가요? > vcc와 gnd를 연결했는데 보드에 불이 안들어옵니다. >
9624 답변완료AM-2560 UART0관련 유혁준 2016-05-19 1,820
#include <mega2560.h> #include <delay.h> #include <string.h> #include <stdio.h> unsigned char ch; unsigned char Buf[100]; unsigned int N_RXDATA; void UART1_init(void) { delay_ms(10); DDRE = 0xfe; // Port : UART1 UBRR1H = 0; // invalid UBRR1L = 16; // buade rate 115200 bps UCSR1A = 0x02; // trans. spd x2 UCSR1B = 0x98; // uart comm., RXC interrupt enable UCSR1C = 0x06; // no parity, 1 stop bit, 8 data bit } void UART1_putch(unsigned char ch) {while((UCSR1A & 0x20) == 0); UDR1 = ch;} void UART1_putstrf(flash unsigned char *str) {unsigned int i=0; for(;str[i] != 0; i++) UART1_putch(str[i]);} interrupt [USART1_RXC] void UART1_getch(void) {ch=UDR1; Buf[N_RXDATA]=ch; N_RXDATA=N_RXDATA+1;} void UART0_init(void) { delay_ms(10); DDRD = 0xfe; // Port : UART0 UBRR0H = 0; UBRR0L = 16; UCSR0A = 0x02; UCSR0B = 0x18; UCSR0C = 0x06; } void main(void) { unsigned int i=0; SREG.7 = 1; UART0_init(); UART1_init(); while(1){ memset(Buf,0x00,sizeof(Buf)); ch=0x00; N_RXDATA=0; //UART1_putstrf("<D\r\n"); //while(ch != 0x0a) {} // 수신 데이터가 \n이면 루프 해제 printf("hello world\n\r",Buf);//이렇게 해도 serial상 나와야 맞음 delay_ms(10); } }
관리자 답변 관리자 · 2016-05-19
안녕하세요? 고객님, 저희 뉴티씨를 이용하여 주셔서 감사합니다. 질문시 작업환경 즉, 컴파일러, AVR 모듈 제품번호, 윈도우 환경, 시리얼 같으면 연결 환경 설명과 사진 등, 각종 필요한 환경 설명을 모두 적어 주셔야 합니다. 또한, 질문이 무엇인지 명확히 적으셔야 알 수 있습니다. 현재 질문 내용인지 그냥 적으신 것인지...잘 의도 파악이 안됩니다. 만약, 115,200 bps로 폴링 방식으로 해서 더블스피드로 초기화 하여 사용하고 싶었던 거라면, 초기화가 틀렸습니다. 감사합니다. > > > #include <mega2560.h> > #include <delay.h> > #include <string.h> > #include <stdio.h> > > unsigned char ch; > unsigned char Buf[100]; > unsigned int N_RXDATA; > void UART1_init(void) > { > delay_ms(10); > DDRE = 0xfe; // Port : UART1 > UBRR1H = 0; // invalid > UBRR1L = 16; // buade rate 115200 bps > UCSR1A = 0x02; // trans. spd x2 > UCSR1B = 0x98; // uart comm., RXC interrupt enable > UCSR1C = 0x06; // no parity, 1 stop bit, 8 data bit > } > void UART1_putch(unsigned char ch) > {while((UCSR1A & 0x20) == 0); UDR1 = ch;} > void UART1_putstrf(flash unsigned char *str) > {unsigned int i=0; for(;str[i] != 0; i++) UART1_putch(str[i]);} > interrupt [USART1_RXC] void UART1_getch(void) > {ch=UDR1; Buf[N_RXDATA]=ch; N_RXDATA=N_RXDATA+1;} > void UART0_init(void) > { > delay_ms(10); > DDRD = 0xfe; // Port : UART0 > UBRR0H = 0; > UBRR0L = 16; > UCSR0A = 0x02; > UCSR0B = 0x18; > UCSR0C = 0x06; > } > void main(void) > { > unsigned int i=0; > > SREG.7 = 1; > > UART0_init(); > UART1_init(); > > while(1){ > memset(Buf,0x00,sizeof(Buf)); > ch=0x00; > N_RXDATA=0; > > //UART1_putstrf("<D\r\n"); > //while(ch != 0x0a) {} // 수신 데이터가 \n이면 루프 해제 > printf("hello world\n\r",Buf);//이렇게 해도 serial상 나와야 맞음 > delay_ms(10); > } > } >