로그인 | 회원가입 | 주문 조회
총 10,743개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
3723 답변완료AM-TLCD-P을 소스 프로그램을 이용해봤느데 김홍래 2009-09-30 1,354
왜 안되는거죠? 소스는 아래와 같습니다. IAR EWAVR을 이용해서 짠 프로그램입니다. #include<iom128.h> //Atmega128 IO Register 정의 #include<inavr.h> #define ENABLE (PORTA_Bit2=1) #define DISABLE (PORTA_Bit2=0) void init_PORTA(void) { DDRA=0xFF; PORTA=0x00; } void wait_busy_flag(void) { unsigned int i; for(i=0;i<10000;i++); } void m_delay(unsigned int m) { unsigned int i,j; __disable_interrupt(); for(i=0;i<m;i++) for(j=0;j<2650;j++); __enable_interrupt(); } void ddelay(unsigned int p) { unsigned int i; for(i=0;i<p;i++); } void instruction_out(unsigned char b) { PORTA=b&0XF0; ENABLE; DISABLE; PORTA=(b<<4)&0xF0; ENABLE; DISABLE; m_delay(5); } void char_out(unsigned char b) { PORTA=(b&0xF0)|0x01; ENABLE; DISABLE; PORTA=((b<<4)&0xF0)|0x01; ENABLE; DISABLE; m_delay(5); } void string_out(unsigned char b, unsigned char *str) { unsigned int i =0; instruction_out(b); do{ char_out(str[i]); }while(str[++i]!='\\0'); } void init_LCD(void) { init_PORTA(); m_delay(40); ddelay(600); instruction_out(0x28); m_delay(5); instruction_out(0x28); m_delay(5); instruction_out(0x0C); instruction_out(0x06); instruction_out(0x02); instruction_out(0x01); instruction_out(0x01); } void main(void) { unsigned char shift = 0; init_LCD(); instruction_out(0x01); string_out(0x80, "LCD_Test"); string_out(0xC0, "mega12!"); while(1) { for(shift=0;shift<8;shift++) { instruction_out(0x1c); m_delay(300); } for(shift=0;shift<16;shift++) { instruction_out(0x18); m_delay(300); } for(shift=0;shift<8;shift++) { instruction_out(0x1C); m_delay(300); } } } 뭐가 문제인지 모르겠습니다. 소스 보시고 답변 바랍니다. AVR Studio를 이용해서 Atmega128에 넣었습니다.
관리자 답변 N.T.C · 2009-10-01
안녕하세요? 고객님, 저희 NewTC를 이용하여 주셔서 감사합니다. 아시다시피 본사에서 예제 소스를 제공하고 있습니다. 하지만, 직접 짜신 소스를 수정하여 드리거나, 어떤 부분이 잘못되었다고 일일이 다 찍어 드리지는 않고 있습니다. 특정한 걸 하시다가, 궁금한 부분이 생기셨을 때, 질문 구체적으로 올려 주시면 답변하여 드립니다. 소스 비교는 직접 저희 소스랑 직접 짜신 것이랑 비교하셔서 하셔야 할 것 같습니다. 첨부해 드리는 소스는 MS2_Test.zip은 AM-MS2 모터 구둥 모듈을 사용할 &#46468;, IAR 5.20으로 구동한 소스인데, 포트 제어 참고하라고 올려 드리구요. 텍스트 LCD 제어 소스는 ICCAVR V7으로 된 것인데, 참고하시라고 보내드립ㄴ디ㅏ. 두 파일을 적절히 잘 섞어 쓰시면 될 것 같습니다. 수고하세요. >왜 안되는거죠? >소스는 아래와 같습니다. >IAR EWAVR을 이용해서 짠 프로그램입니다. > > >#include<iom128.h> //Atmega128 IO Register 정의 >#include<inavr.h> > >#define ENABLE (PORTA_Bit2=1) >#define DISABLE (PORTA_Bit2=0) > >void init_PORTA(void) >{ > DDRA=0xFF; > PORTA=0x00; >} > >void wait_busy_flag(void) >{ > unsigned int i; > > for(i=0;i<10000;i++); >} > >void m_delay(unsigned int m) >{ > unsigned int i,j; > > __disable_interrupt(); > > for(i=0;i<m;i++) > for(j=0;j<2650;j++); > > __enable_interrupt(); >} > >void ddelay(unsigned int p) >{ > unsigned int i; > > for(i=0;i<p;i++); >} > >void instruction_out(unsigned char b) >{ > PORTA=b&0XF0; > > ENABLE; > > DISABLE; > > PORTA=(b<<4)&0xF0; > > ENABLE; > > DISABLE; > > m_delay(5); >} > >void char_out(unsigned char b) >{ > PORTA=(b&0xF0)|0x01; > > ENABLE; > DISABLE; > > PORTA=((b<<4)&0xF0)|0x01; > > ENABLE; > DISABLE; > > m_delay(5); >} > >void string_out(unsigned char b, unsigned char *str) >{ > unsigned int i =0; > instruction_out(b); > > do{ > char_out(str[i]); > }while(str[++i]!='\\0'); >} > >void init_LCD(void) >{ > init_PORTA(); > m_delay(40); > > ddelay(600); > instruction_out(0x28); > > m_delay(5); > instruction_out(0x28); > > m_delay(5); > instruction_out(0x0C); > instruction_out(0x06); > instruction_out(0x02); > instruction_out(0x01); > instruction_out(0x01); >} > >void main(void) >{ > unsigned char shift = 0; > init_LCD(); > instruction_out(0x01); > string_out(0x80, "LCD_Test"); > string_out(0xC0, "mega12!"); > while(1) > { > for(shift=0;shift<8;shift++) > { > instruction_out(0x1c); > m_delay(300); > } > > for(shift=0;shift<16;shift++) > { > instruction_out(0x18); > m_delay(300); > } > for(shift=0;shift<8;shift++) > { > instruction_out(0x1C); > m_delay(300); > } > } >} > >뭐가 문제인지 모르겠습니다. > >소스 보시고 답변 바랍니다. > >AVR Studio를 이용해서 Atmega128에 넣었습니다.
3722 답변완료스테핑 모터를 구동하려 합니다. 안득형 2009-09-30 1,432
예제 소스들을 구동시킨 결과 별탈없이 돌아갑니다. 그런데 제가 만든 소스는 에러는 없다 하는데도 모터가 먹통입니다. 이것저것 찾아봐도 도저히 모르겠습니다. 어디가 문제인건지 알려주시면 감사하겠습니다.
관리자 답변 N.T.C · 2009-10-01
안녕하세요? 고객님, 저희 NewTC를 이용하여 주셔서 감사합니다. 아시다시피 본사에서 예제 소스를 제공하고 있습니다. 하지만, 직접 짜신 소스를 수정하여 드리거나, 어떤 부분이 잘못되었다고 일일이 다 찍어 드리지는 않고 있습니다. 특정한 걸 하시다가, 궁금한 부분이 생기셨을 때, 질문 구체적으로 올려 주시면 답변하여 드립니다. 소스 비교는 직접 저희 소스랑 직접 짜신 것이랑 비교하셔서 하셔야 할 것 같습니다. 수고하세요. >예제 소스들을 구동시킨 결과 별탈없이 돌아갑니다. > >그런데 제가 만든 소스는 에러는 없다 하는데도 모터가 먹통입니다. > >이것저것 찾아봐도 도저히 모르겠습니다. 어디가 문제인건지 알려주시면 감사하겠습니다.
3721 답변완료안녕하세요 3축 각속도센서 문의드립니다. 테러리스트 2009-09-30 1,423
윈도우용 마우스 프로그램 소스가 공개되어있다는데 찾을수가없어서 문의드립니다. 자료실에있는 프로그램소스는 도스용과 마이크로컨트롤러에 대한 소스만있고 윈도우용 프로그램 소스는 찾을수없어서 문의드립니다.
관리자 답변 N.T.C · 2009-09-30
안녕하세요? 고객님, 3축 센서 테스트용 소스는 아래에 첨부하였구요. 현재 공개중인 버전의 소스가 아니라, 예전 버전입니다. 물론 동일하게 사용 가능하지만, 몇가지 버그들이 있습니다. 버퍼 쪽에 버그가 있어서, 버퍼가 풀이 되면, 종료되기도 합니다. 그런 문제들 때문에, 현재 버전은 문제점을 잡아 놓았지만, 현재 버전은 소스를 공개하지 않고 있습니다. 예전 버전에 대한 소스는 계속 공개되므로, 많이 이용하시기 바랍니다. 문제점들은 좀 수정하여 사용하셔야 할 겁니다. 57,600bps로 되어 있으니, 참고 바랍니다. 그리고, 3축 마우스 관련된 소스도 마찬가지 상태입니다. 이 소스는 좀 수정을 많이 하셔야 합니다. 키포인트는 들어 있으니, 참고는 하실 수 있을 것 같아서, 올려드립니다. 원래 이 소스는 오픈하지 않고 있습니다. 그리고, 본 게시판에서는 반드시 본명으로 질문하셔야 합니다. 본명이 아니면, 답변이 나가지 않을 수도 있습니다. 다른 분들도 함께 사용하는 게시판이니 앞으로는 꼭 본명으로 질문 부탁드립니다. 수고하세요. 감사합니다. >윈도우용 마우스 프로그램 소스가 공개되어있다는데 찾을수가없어서 문의드립니다. >자료실에있는 프로그램소스는 도스용과 마이크로컨트롤러에 대한 소스만있고 윈도우용 프로그램 소스는 찾을수없어서 문의드립니다.
3720 답변완료안녕하세요 AVR MEGA 128 개발 보드(+빵판)(AB-M128-A) 질문이있습니다 김명재 2009-09-30 1,299
귀사의 AVR MEGA 128 개발 보드(+빵판)(AB-M128-A) 보드를 구매하려고 하는데 몇가지 질문이 있습니다. 5V UART 레벨의 입출력 포트가 2개 있고 RS232 레벨의 포트가 2개 있는거 같은데 맞는지요? 이보드에 블루투스와 RF READER를 달려고 하는데 TTL level 출력이라 2개정도 있어야 할꺼 같은데 가능한지 궁금합니다. 그리고 빵판 위쪽에 5V 전압하고 아래쪽에 GND는 기본적으로 보드에 연결이 되어 있는건가요? 마지막으로 ATmega128 코어보드도 포함되어 있는거죠? 감사합니다.
관리자 답변 N.T.C · 2009-09-30
네 고객님, 모두 맞습니다. 감사합니다. >귀사의 AVR MEGA 128 개발 보드(+빵판)(AB-M128-A) 보드를 구매하려고 하는데 몇가지 질문이 있습니다. > >5V UART 레벨의 입출력 포트가 2개 있고 RS232 레벨의 포트가 2개 있는거 같은데 맞는지요? >이보드에 블루투스와 RF READER를 달려고 하는데 TTL level 출력이라 2개정도 있어야 할꺼 같은데 가능한지 궁금합니다. > >그리고 빵판 위쪽에 5V 전압하고 아래쪽에 GND는 기본적으로 보드에 연결이 되어 있는건가요? > >마지막으로 ATmega128 코어보드도 포함되어 있는거죠? > >감사합니다. > >
3719 답변완료안녕하세요. 질문입니다~ 김경주 2009-09-30 1,252
안녕하세요~ 다름이 아니고 제가 스테핑모터 NK243 모델과 모터보드 AM-MS2를 사용하고 있습니다. 궁금한점은 모터를 구동시킬때 알람을이 나는데 이게 모터에서 나는 것인지 보드에서 나는것인지, 또 알람소리를 없앨수는 없는지 알고싶네요.. 소리를 없애고 싶어서요.. 알려주시면 감사하겠습니다. 수고하세요~
관리자 답변 N.T.C · 2009-09-30
안녕하세요? 고객님, 저희 NewTC 제품을 이용하여 주셔서 감사합니다. 프로그램에 따라서, 소리가 나거나 안나거나 합니다. 모터 구동부를 한쪽만 구동하게 되면 소리가 안날 겁니다. 또한, 전원부를 확실히 안정적으로 공급해 주면 소리가 덜 나른 것으로 실험결과 나왔습니다. 즉, 24V에 전류를 3A정도까지 사용하는 파워를 사용하면 좋습니다. 프로그램 중에서 타이머를 쓸 경우 타이머 값을 바꿔서 소리가 사람 귀에 안들리는 쪽으로 주파수를 몰아주면 소리가 안들리게 할 수도 있습니다. 프로그램을 잘 짜면 덜 나거나 안나기도 합니다. 그리고, 모터에 따라서, 소리가 나는 게 안 날 수 도 있고 달라집니다. 본사에서 제공하는 여러가지 예제로 사용해 보세요. 자료실->기존자료실에 가서 스테핑 이라고 치면 됩니다. 수고하세요. >안녕하세요~ 다름이 아니고 >제가 스테핑모터 NK243 모델과 모터보드 AM-MS2를 사용하고 있습니다. > >궁금한점은 모터를 구동시킬때 알람을이 나는데 이게 모터에서 나는 것인지 >보드에서 나는것인지, 또 알람소리를 없앨수는 없는지 알고싶네요.. > >소리를 없애고 싶어서요.. 알려주시면 감사하겠습니다. >수고하세요~ >
3718 답변완료AB-M128pro-A 관련문의 도유희 2009-09-29 1,269
=================== 1번 ===================== #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 = 0x00; PORTE = 0x00; DDRE = 0xFF; PORTF = 0x00; DDRF = 0xFF; PORTG = 0x00; DDRG = 0x1F; } //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 } unsigned char i, led; // 전역변수 선언 void delay(int cnt) { int i, j; for(i=0; i<cnt; i++) for(j=0; j<1000; j++) ; } void left() { led = 0x01; // LED 하위 1개 점등 값 for(i=0; i<8; i++) { PORTC = led; led = (led << 1); // 한 비트씩 왼쪽으로 이동 delay(100); } } void right() { led = 0x80; // LED 상위 1개 점등 값 for(i=0; i<8; i++) { PORTC = led; led = (led >> 1); // 한 비트씩 오른쪽으로 이동 delay(100); } } void odd() // 홀수만 8번 깜빡 깜빡.. { led = 0x55; // 01010101 for(i=0; i<8; i++) { PORTC = led; delay(100); PORTC = 0x00; delay(100); } } void even() // 짝수만 8번 깜빡 깜빡.. { led = 0xAA; // 10101010 for(i=0; i<8; i++) { PORTC = led; delay(100); PORTC = 0x00; delay(100); } } void oddeven() // 짝수 홀수 반복 8번 { led = 0xAA; // 10101010 for(i=0; i<8; i++) { PORTC = led; delay(100); PORTC = ~led; delay(100); } } void blink() { PORTC = 0x00; // 모든 비트 소등 } void main() { unsigned char sw; init_devices(); DDRD = 0x00; // 포트 D를 입력으로 설정 (스위치 포트) DDRC = 0xFF; // 포트 C를 출력으로 설정 (led 포트) while(1) { sw = PIND; // 포트 D(스위치)를 읽어 들임 switch(sw) //포트 D의 값에 따라.. { case 0x01: right(); break; case 0x02: left(); break; case 0x04: odd(); break; case 0x08: even(); break; case 0x10: oddeven(); break; case 0x20: case 0x40: case 0x80: default: blink(); } } } ================2번================== #include <iom128v.h> #include <macros.h> void port_init(void) { PORTA = 0x00; DDRA = 0x00; 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 = 0x1F; } //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 } unsigned char i, led; // 전역변수 선언 void delay(int cnt) { int i, j; for(i=0; i<cnt; i++) for(j=0; j<1000; j++) ; } void left() { led = 0x01; // LED 하위 1개 점등 값 for(i=0; i<8; i++) { PORTC = led; led = (led << 1); // 한 비트씩 왼쪽으로 이동 delay(100); } } void right() { led = 0x80; // LED 상위 1개 점등 값 for(i=0; i<8; i++) { PORTC = led; led = (led >> 1); // 한 비트씩 오른쪽으로 이동 delay(100); } } void odd() // 홀수만 8번 깜빡 깜빡.. { led = 0x55; // 01010101 for(i=0; i<8; i++) { PORTC = led; delay(100); PORTC = 0x00; delay(100); } } void even() // 짝수만 8번 깜빡 깜빡.. { led = 0xAA; // 10101010 for(i=0; i<8; i++) { PORTC = led; delay(100); PORTC = 0x00; delay(100); } } void oddeven() // 짝수 홀수 반복 8번 { led = 0xAA; // 10101010 for(i=0; i<8; i++) { PORTC = led; delay(100); PORTC = ~led; delay(100); } } void blink() { PORTC = 0x00; // 모든 비트 소등 } void main() { unsigned char sw; init_devices(); DDRA = 0x00; // 포트 A를 입력으로 설정 (스위치 포트) DDRC = 0xFF; // 포트 C를 출력으로 설정 (led 포트) while(1) { sw = PINA; // 포트 A(스위치)를 읽어 들임 switch(sw) //포트 A의 값에 따라.. { case 0x01: right(); break; case 0x02: left(); break; case 0x04: odd(); break; case 0x08: even(); break; case 0x10: oddeven(); break; case 0x20: case 0x40: case 0x80: default: blink(); } } } 1번 예제를 다운로드 후 작동하면 키값을 제대로 받지 않고요. 입력 포트를 D 와 E 제외한 다른것은 정상 동작합니다. 그리고 포트 D를 입력으로 하고 LED를직접 연결하니 불이 들어옵니다. 2번은 입력을 A 출력을 C 로 한경우 정상동작합니다. 잘못된곳 있으면 설명 부탁드립니다.
관리자 답변 N.T.C · 2009-09-30
안녕하세요 입력에 관련 핀은 주위에 디바이스들이 물려있으면 구동이 안될 수도 있습니다. 도면을 확인해 보니 그 포트에는 Uart / I2C 관련된 구성품이 물려져 있습니다. 그 포트들을 입력으로 사용안하시는것이 좋습니다. 아니면 그포트를 사용하려면 그 비트를 제외한 것을 사용도록 하세요. 또하나의 방법은 그라인에 물려있는 풀업저항을 제거 하면 사용할수있습니다. 감사합니다. >=================== 1번 ===================== >#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 = 0x00; >PORTE = 0x00; >DDRE = 0xFF; >PORTF = 0x00; >DDRF = 0xFF; >PORTG = 0x00; >DDRG = 0x1F; >} > >//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 >} >unsigned char i, led; // 전역변수 선언 >void delay(int cnt) >{ >int i, j; >for(i=0; i<cnt; i++) >for(j=0; j<1000; j++) >; >} >void left() >{ >led = 0x01; // LED 하위 1개 점등 값 >for(i=0; i<8; i++) >{ >PORTC = led; >led = (led << 1); // 한 비트씩 왼쪽으로 이동 >delay(100); >} >} >void right() >{ >led = 0x80; // LED 상위 1개 점등 값 >for(i=0; i<8; i++) >{ >PORTC = led; >led = (led >> 1); // 한 비트씩 오른쪽으로 이동 >delay(100); >} >} >void odd() // 홀수만 8번 깜빡 깜빡.. >{ >led = 0x55; // 01010101 >for(i=0; i<8; i++) >{ >PORTC = led; >delay(100); >PORTC = 0x00; >delay(100); >} >} >void even() // 짝수만 8번 깜빡 깜빡.. >{ >led = 0xAA; // 10101010 >for(i=0; i<8; i++) >{ >PORTC = led; >delay(100); >PORTC = 0x00; >delay(100); >} >} >void oddeven() // 짝수 홀수 반복 8번 >{ >led = 0xAA; // 10101010 >for(i=0; i<8; i++) >{ >PORTC = led; >delay(100); >PORTC = ~led; >delay(100); >} >} >void blink() >{ >PORTC = 0x00; // 모든 비트 소등 >} >void main() >{ >unsigned char sw; >init_devices(); >DDRD = 0x00; // 포트 D를 입력으로 설정 (스위치 포트) >DDRC = 0xFF; // 포트 C를 출력으로 설정 (led 포트) >while(1) >{ >sw = PIND; // 포트 D(스위치)를 읽어 들임 >switch(sw) //포트 D의 값에 따라.. >{ >case 0x01: right(); break; >case 0x02: left(); break; >case 0x04: odd(); break; >case 0x08: even(); break; >case 0x10: oddeven(); break; >case 0x20: >case 0x40: >case 0x80: >default: blink(); >} >} >} >================2번================== > >#include <iom128v.h> >#include <macros.h> > >void port_init(void) >{ >PORTA = 0x00; >DDRA = 0x00; >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 = 0x1F; >} > >//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 >} >unsigned char i, led; // 전역변수 선언 >void delay(int cnt) >{ >int i, j; >for(i=0; i<cnt; i++) >for(j=0; j<1000; j++) >; >} >void left() >{ >led = 0x01; // LED 하위 1개 점등 값 >for(i=0; i<8; i++) >{ >PORTC = led; >led = (led << 1); // 한 비트씩 왼쪽으로 이동 >delay(100); >} >} >void right() >{ >led = 0x80; // LED 상위 1개 점등 값 >for(i=0; i<8; i++) >{ >PORTC = led; >led = (led >> 1); // 한 비트씩 오른쪽으로 이동 >delay(100); >} >} >void odd() // 홀수만 8번 깜빡 깜빡.. >{ >led = 0x55; // 01010101 >for(i=0; i<8; i++) >{ >PORTC = led; >delay(100); >PORTC = 0x00; >delay(100); >} >} >void even() // 짝수만 8번 깜빡 깜빡.. >{ >led = 0xAA; // 10101010 >for(i=0; i<8; i++) >{ >PORTC = led; >delay(100); >PORTC = 0x00; >delay(100); >} >} >void oddeven() // 짝수 홀수 반복 8번 >{ >led = 0xAA; // 10101010 >for(i=0; i<8; i++) >{ >PORTC = led; >delay(100); >PORTC = ~led; >delay(100); >} >} >void blink() >{ >PORTC = 0x00; // 모든 비트 소등 >} >void main() >{ >unsigned char sw; >init_devices(); >DDRA = 0x00; // 포트 A를 입력으로 설정 (스위치 포트) >DDRC = 0xFF; // 포트 C를 출력으로 설정 (led 포트) >while(1) >{ >sw = PINA; // 포트 A(스위치)를 읽어 들임 >switch(sw) //포트 A의 값에 따라.. >{ >case 0x01: right(); break; >case 0x02: left(); break; >case 0x04: odd(); break; >case 0x08: even(); break; >case 0x10: oddeven(); break; >case 0x20: >case 0x40: >case 0x80: >default: blink(); >} >} >} >1번 예제를 다운로드 후 작동하면 키값을 제대로 받지 않고요. 입력 포트를 D 와 E 제외한 다른것은 정상 동작합니다. >그리고 포트 D를 입력으로 하고 LED를직접 연결하니 불이 들어옵니다. >2번은 입력을 A 출력을 C 로 한경우 정상동작합니다. >잘못된곳 있으면 설명 부탁드립니다.
3717 답변완료Textlcd 예제 소스에 대한 자세한 설명 부탁드립니다. 전정수 2009-09-29 1,315
#define LCD_EN_ON (Control = (Controller |= 0x04)) #define LCD_EN_OFF (Control = (Controller &= 0x0b)) #define LCD_RW_ON (Control = (Controller |= 0x02)) #define LCD_RW_OFF (Control = (Controller &= 0x0d)) #define LCD_RS_ON (Control = (Controller |= 0x01)) #define LCD_RS_OFF (Control = (Controller &= 0x0e)) 와 같이 인에이블, 리드라이트, 레지스터에 관해 정의한 부분이 있습니다. 이때 Controller는 character형 변수로 선언되어있고 초기화가 되어있지 않습니다. #define LCD_EN_ON (Control = (Controller |= 0x04)) 는 Control 의 주소값에 Controller | 0x04 값을 넣는것이 맞지요? 이때 나올 수 있는 결과 값은 미지수 라고 생각됩니다. #define LCD_EN_OFF (Control = (Controller &= 0x0b)) 는 Control 의 주소값에 Controller & 0x04 값을 넣는것이 맞지요? 이때 나올 수 있는 결과 값은 0000?0?? 라고 생각됩니다. Controller의 원래 값에 따라 Control의 주소 값에 들어가는 값이 달라지는데 이는 프로그램에 영향을 미치지 않는건가요?
관리자 답변 N.T.C · 2009-09-29
안녕하세요? 고객님, 주소가 아닌 Controller 라는 변수에 값을 넣게 되어서 정상적으로 잘 동작하게 됩니다. 감사합니다. >#define LCD_EN_ON (Control = (Controller |= 0x04)) >#define LCD_EN_OFF (Control = (Controller &= 0x0b)) >#define LCD_RW_ON (Control = (Controller |= 0x02)) >#define LCD_RW_OFF (Control = (Controller &= 0x0d)) >#define LCD_RS_ON (Control = (Controller |= 0x01)) >#define LCD_RS_OFF (Control = (Controller &= 0x0e)) > >와 같이 인에이블, 리드라이트, 레지스터에 관해 정의한 부분이 있습니다. > >이때 Controller는 character형 변수로 선언되어있고 초기화가 되어있지 않습니다. > >#define LCD_EN_ON (Control = (Controller |= 0x04)) 는 > >Control 의 주소값에 Controller | 0x04 값을 넣는것이 맞지요? > >이때 나올 수 있는 결과 값은 미지수 라고 생각됩니다. > > >#define LCD_EN_OFF (Control = (Controller &= 0x0b)) 는 > >Control 의 주소값에 Controller & 0x04 값을 넣는것이 맞지요? > >이때 나올 수 있는 결과 값은 0000?0?? 라고 생각됩니다. > > >Controller의 원래 값에 따라 Control의 주소 값에 들어가는 값이 달라지는데 > >이는 프로그램에 영향을 미치지 않는건가요?
3716 답변완료질문입니다. 이길용 2009-09-29 1,273
저번에 질문2개를 했는데 1개에 대한 답변밖에 없어서요 > DC 모터 구동모듈 Dual 4A (AM-DC2-4C) > 또 동시에 DC모터 4개를 구동시키기 위해 > >위 모터 2개씩 제어하는 모듈 2개를 구입하려 하는데 > >그러면 모터 모듈 2개가 동시에 모터 4개가 구동되는지 궁금합니다. > > 답변 부탁드립니다.
관리자 답변 N.T.C · 2009-09-29
아...네 고객님 안녕하세요? 가능합니다. 그 때, 올려드린다는 게, 리눅스 드라이버에 집중하다 보니, 깜빡했습니다. 프로그램만 잘 짜시면 4개를 사람이 느끼게에 동시에 제어 가능합니다. 감사합니다. >저번에 질문2개를 했는데 > >1개에 대한 답변밖에 없어서요 > >> DC 모터 구동모듈 Dual 4A (AM-DC2-4C) > >> 또 동시에 DC모터 4개를 구동시키기 위해 >> >>위 모터 2개씩 제어하는 모듈 2개를 구입하려 하는데 >> >>그러면 모터 모듈 2개가 동시에 모터 4개가 구동되는지 궁금합니다. >> >> > 답변 부탁드립니다.
3715 답변완료USB-ISP 다운로드시 에러나네요 해결 방법 알려주세요. 김준윤 2009-09-29 1,343
첨부 사진과 같습니다.
관리자 답변 N.T.C · 2009-09-29
안녕하세요? 고객님, 저희 NewTC를 이용하여 주셔서 감사합니다. ISP 선 연결이 제대로 되지 않았을 때 많이 발생하는 메시지 입니다. USBISP와 모듈간의 연결이 핀 이름대로 각각 잘 연결되었는 지 다시 확인하여 보시기 바랍니다. 회사들간에 사용하는 ISP 핀 배열이 달라서 그럴 수도 있으니, 확인 바랍니다. 감사합니다. >첨부 사진과 같습니다.
3714 답변완료안녕하세요. 질문입니다 이욱현 2009-09-29 1,398
안녕하세요. 예전에 AM-RFMOD구매했는데, USB로 노트북이랑 연결해서 잘쓰고 있었거든요. 근데 한시간전에, 연결하는 순간, 타버리더군요;;;; 캐패시터가 탄거 같은데; ㅜㅜ 이거 혹시 수리 가능한가요?? 아니면, 혹시 주문하면 언제쯤 도착할까요? 여기는 천안인데;; 내일 12시쯤에 필요해서 ㅜㅜ 가능한 빨리 답변주시면 감사하겠습니다 ㅜㅜ
관리자 답변 N.T.C · 2009-09-29
안녕하세요? 고객님, 저희 NewTC 제품을 이용하여 주셔서 감사합니다. 제품을 받아봐서 상태를 봐야 합니다. 수리 가능한지는 그 이후에, 말씀드릴 수가 있겠습니다. 그리고, 현재 택배가 오늘 까지라서, 빨리 주문하셔야 하구요. 내일이 필요하신 날이라면, 추석 상황 이라 택배가 좀 밀려 있어서, 늦게 배송되는 경우도 있더라구요. 현재 가능할 지 모르겠습니다. 저희가 배송하는 게 아니라서 지금은 장담해 드리기 어렵네요. 평상시 같으면 하루면 배송이 되지만요. 제 생각에는 대전에 디바이스 마트 매장이 있는 데 천안이 가깝잖아요. 대전 디바이스 마트(070-7019-8885)에 연락해서 받으시는 게 좋겠습니다. 감사합니다. >안녕하세요. 예전에 AM-RFMOD구매했는데, USB로 노트북이랑 연결해서 잘쓰고 있었거든요. >근데 한시간전에, 연결하는 순간, 타버리더군요;;;; 캐패시터가 탄거 같은데; ㅜㅜ >이거 혹시 수리 가능한가요?? 아니면, 혹시 주문하면 언제쯤 도착할까요? >여기는 천안인데;; 내일 12시쯤에 필요해서 ㅜㅜ 가능한 빨리 답변주시면 감사하겠습니다 ㅜㅜ
3713 답변완료ADC질문이요~ 송은혜 2009-09-29 1,405
지금 ATMEGA128을 이용해서 FND에 가변저항을 통해 변화되는 볼트값을 나타내게 하는것을 하고 있는대요.. 프로그래밍은 AVREDIT으로 다 짰구요.. 제가 생각했던것처럼 다 잘되고 있었습니다.. 그런데 제가 다른 파워보드를 이것저것 측정해보다보니.. 갑자기 안되서요.. 볼트메터기로 보드에 입력전압과 가변저항의 전압을 체크해봤는데 잘 나오더라구요.. 그런데 PORTF0번지를 이용해서 값을 나타내주었는대.. FND와 PORTF가 연결이 안되는것 같아요.. 원래 PORTF에 연결된 선을 가변저항의 입력단에 넣으면 잘 되다가 빼면 값들이 희미해지거나 이상하게 뜨고 , 그리고 그라운드에 연결해야 제대로 작동하고 안하면 앞에 말한것같은 현상이 일어났었거든요... 그런데 아무리 빼따껴따해도 FND에 값에 변화도 없고 선명하게 잘 뜨고,. 그리고 이상한값이 떴다가 점점 값이 작아지네요...ㅠㅠ 제 생각에는 보드에 문제가 있는것같은대 뭔지 잘 모르겠어요.. 감이 안잡히는대.. 제가 잘 몰라서.. 도와주세요~
관리자 답변 N.T.C · 2009-09-29
안녕하세요? 고객님, 제가 볼 때는 프로그램 쪽에 문제가 있는 것 같네요. 아래의 포트 테스트 소스로 각 포트를 테스트 해서, 하드웨어 문제인지를 먼저 파악하세요. - 아래 - http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=포트&select_arrange=headnum&desc=asc&no=248 수고하세요. >지금 ATMEGA128을 이용해서 FND에 가변저항을 통해 변화되는 볼트값을 나타내게 하는것을 하고 있는대요.. > >프로그래밍은 AVREDIT으로 다 짰구요.. 제가 생각했던것처럼 다 잘되고 있었습니다.. > >그런데 제가 다른 파워보드를 이것저것 측정해보다보니.. 갑자기 안되서요.. > >볼트메터기로 보드에 입력전압과 가변저항의 전압을 체크해봤는데 잘 나오더라구요.. > >그런데 PORTF0번지를 이용해서 값을 나타내주었는대.. FND와 PORTF가 연결이 안되는것 같아요.. >원래 PORTF에 연결된 선을 가변저항의 입력단에 넣으면 잘 되다가 빼면 값들이 희미해지거나 이상하게 뜨고 , 그리고 그라운드에 연결해야 제대로 작동하고 안하면 앞에 말한것같은 현상이 일어났었거든요... > >그런데 아무리 빼따껴따해도 FND에 값에 변화도 없고 선명하게 잘 뜨고,. 그리고 이상한값이 떴다가 점점 값이 작아지네요...ㅠㅠ > >제 생각에는 보드에 문제가 있는것같은대 뭔지 잘 모르겠어요.. 감이 안잡히는대.. 제가 잘 몰라서.. > >도와주세요~
3712 답변완료모터구동모듈.. 김민수 2009-09-29 1,392
24V 3A 정도의 모터를 두 개 돌리려 합니다.. 그리고 파워는 SMPS 24V 4.2A를 사용합니다.. NTC제품 중에 모터구동모듈이 있던데.. DUAL 4A 하나를 사용하는 것이 좋을까요.. SINGLE 3A 두 개를 사용하는 것이 좋을까요..? 다시 말하자면.. 듀얼 4A는 4A짜리 두 개를 사용해도 좋다는 건가요.. 도합해서 4A까지 쓸 수 있다는 건가요..? 또.. 모터구동모듈을 사용하면 6A (3A+3A 모터 두 개)의 모터를 돌려도.. 4A의 파워로 가능하다는 건가요.. 아니면 어차피 모터의 용량에 맞춰서 파워도 두 개 사용해야 하는건가요..? NTC 모터구동모듈을 사려고 엘레파X 쇼핑몰을 보던 중.. 사용기에 PWM을 주는 순간 폭발했다고 하던데.. 그것은 어떤 잘못을 해서 그런 현상이 일어났을까요..? 또는 그런 현상이 일어나지 않게 하자면 어떤 방법이 있을까요..?
관리자 답변 N.T.C · 2009-09-29
안녕하세요. AM-DC2-4C 모터드라이버하나당 4A 입니다. 듀얼은 각각 4A/4A 가능합니다. 모터가 3A전류를 소모하다고 하면 약간 높은 드라이버를 선택하는것이 좋습니다. 가만히있는 보드가 터지는 일은 없습니다. 보드주의에 접촉될수있는 치워주시고요(쇼트방지). 모터드라이버의 전원은 모터 전격에 맞게 넣어주시고, 콘트론보드와 모터드라이버보는 전원 독립적으로 사용하는것이 좋습니다. 감사합니다. > > 24V 3A 정도의 모터를 두 개 돌리려 합니다.. > 그리고 파워는 SMPS 24V 4.2A를 사용합니다.. > > > NTC제품 중에 모터구동모듈이 있던데.. > DUAL 4A 하나를 사용하는 것이 좋을까요.. > SINGLE 3A 두 개를 사용하는 것이 좋을까요..? > 다시 말하자면.. > 듀얼 4A는 4A짜리 두 개를 사용해도 좋다는 건가요.. > 도합해서 4A까지 쓸 수 있다는 건가요..? > > 또.. > 모터구동모듈을 사용하면 6A (3A+3A 모터 두 개)의 모터를 돌려도.. > 4A의 파워로 가능하다는 건가요.. > 아니면 어차피 모터의 용량에 맞춰서 파워도 두 개 사용해야 하는건가요..? > > > NTC 모터구동모듈을 사려고 엘레파X 쇼핑몰을 보던 중.. > 사용기에 PWM을 주는 순간 폭발했다고 하던데.. > 그것은 어떤 잘못을 해서 그런 현상이 일어났을까요..? > 또는 그런 현상이 일어나지 않게 하자면 어떤 방법이 있을까요..? > > > >
3711 답변완료스테핑 라인트레이서(조립용)주문했는데요. 공도리 2009-09-28 1,330
이 반제품을 이제부터 만들면서 응용을 좀해야합니다. 검은라인이 떨어졌져있는구간에도 길을 다시 찾아가야하는데요(장애물피하기) c를 많이 수정을 해야될텐데 센서도 따로 주문해야되나요? (현재는 바닥쪽 수광,발광부 두파트만 센서로 동작하고 장애물은 못피하는지요..)
관리자 답변 N.T.C · 2009-09-28
안녕하세요? 고객님, 저희 NewTC 제품을 이용하여 주셔서 감사합니다. 본 게시판은 여러사람들이 함께 사용하는 게시판으로 반드시 본명으로만 질문을 받고 있습니다. 본명이 아니면, 답변이 나가지 않을 수 있습니다. 다음부터는 반드시 본명으로 질문하여 주시기 바랍니다. 스테핑 라인트레이서 조립용을 주문하셨다면, 센서부도 함께 들어 있으니, 따로 주문하지 않으셔도 됩니다. 현재는 장애물은 못피하도죠. 장애물을 감지하는 센서가 안 달려 있으니까요. 하지만, 앞에 SRF04와 같은 초음파 센서를 단다면, 가능하겠습니다. SRF04관련된 소스와 회로도는 자료실->기존자료실에서 SRF라고 치면 됩니다. 수고하세요. 감사합니다. >이 반제품을 이제부터 만들면서 응용을 좀해야합니다. > >검은라인이 떨어졌져있는구간에도 길을 다시 찾아가야하는데요(장애물피하기) > >c를 많이 수정을 해야될텐데 > >센서도 따로 주문해야되나요? > >(현재는 바닥쪽 수광,발광부 두파트만 센서로 동작하고 장애물은 못피하는지요..) > > >
3710 답변완료textlcd에서 아무런 예제도 돌아가지 않습니다. 전정수 2009-09-28 1,460
kt-m128보드를 사용 중이구요. cd내에 있는 소스와 자료실에 있는 소스 두가지 모두 아무런 반응이 없습니다. Graphic LCD의 경우에는 작동하는 반면에 Text LCD에 백라이트는 켜져 있지만 출력되는건 없습니다. 혹시 다른 예제 소스를 구할 수 있을까 해서 질문 드려봅니다. ps. 지난번 ktmlcd.h파일이 ktm128.h와 동일하다고 하셧는데 lcdInit(); 함수나 lcd_puts(); 함수와 관련된 내용은 없더군요.
관리자 답변 전정수 · 2009-09-28
Text LCD 앞면에 1109라는 숫자가 적혀있고 뒷면에는 APEX - AX07001이라는 글자가 적혀있습니다. CD에 동봉된 자료에는 SC1602라는 Text LCD를 사용하였는데 제가 지금 사용하고 있는 LCD와 다른 LCD 같아서 올려봅니다.
3709 답변완료올려주신 샘플에 관하여 질문드립니다. 박종진 2009-09-28 1,456
늦은 시간까지 소스 작성해 주셔서 정말 감사합니다. 아직 제가 AVR초보자라서 이렇게 질문을 드립니다. 샘플소스에 대하여 좀더 자세히 알려 주실 수 있나요? 입력 핀과 AD컨버팅 하여 출력 하는 PORT는 어느 걸 사용 해야 되는지요.? 터무니 없는 질문임에도 성심껏 답변 주셔 너무나 감사드립니다. 그럼 부탁 드리겠습니다.
관리자 답변 N.T.C · 2009-09-28
네, 직접 공부를 하셔야 합니다. 강좌->AVR 강좌에 가면 ADC 관련 강좌가 있습니다. 또는 강좌->AVR 강좌에서 초초보 강좌의 AD컨버터 부분을 보면 자세히 나와 있습니다. 어떤 부분이 ADC 포트인지, 잘 나와 있을 겁니다. 아까 드린 답변을 참고하여 찾아 보기 바랍니다. 전혀 공부를 하지 않는 자세는 좋지 않습니다. 수고하세요. >늦은 시간까지 소스 작성해 주셔서 정말 감사합니다. >아직 제가 AVR초보자라서 이렇게 질문을 드립니다. > >샘플소스에 대하여 좀더 자세히 알려 주실 수 있나요? >입력 핀과 AD컨버팅 하여 출력 하는 PORT는 어느 걸 사용 해야 되는지요.? >터무니 없는 질문임에도 성심껏 답변 주셔 너무나 감사드립니다. >그럼 부탁 드리겠습니다. > >