로그인 | 회원가입 | 주문 조회
총 10,743개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
9348 답변완료eeprom에 관한 예제소스 질문입니다. (2) 권영환 2015-10-01 1,454
답변 감사히 받았습니다. 그럼 유아트로 출력이 아닌 포트로 출력하게 바꿀려고하면 디바이스 함수쪽을 건드려야 되나요? lcd로 출력하게 할려고 합니다.
관리자 답변 관리자 · 2015-10-01
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 메인 소스를 그대로 쓰면서도 출력을 LCD로 할 수 있는 방법이 있습니다. printf 출력을 UART가 아니라 LCD 쪽으로 돌리는 방법입니다. 이 방법으로 UART0로 출력하다가 UART1로 출력하다가 할 수도 있습니다. http://www.newtc.co.kr/dpshop/bbs/board.php?bo_table=m41&wr_id=891&sca=&sfl=wr_subject%7C%7Cwr_content&stx=lcd&sop=and&page=5 마찬가지 방법으로 LCD로 출력할 수도 있지요. 현재는 UART0로 출력하고 있을 겁니다. 그것을 UDR0에 데이터 한바이트를 출력해 주는 것이 아니라, LCD 쪽으로 출력해 주면 됩니다. 감사합니다. > > > 답변 감사히 받았습니다. > > 그럼 유아트로 출력이 아닌 > > 포트로 출력하게 바꿀려고하면 디바이스 함수쪽을 건드려야 되나요? > > lcd로 출력하게 할려고 합니다. >
9347 답변완료eeprom에 관한 예제소스 질문입니다. 권영환 2015-10-01 1,454
안녕하세요. 비도 오고 바쁜시간에 시간내주시어 감사합니다. 다름이 아니라 이번에 작품을 만들게 되었는데 작품에서 직접 키매트릭스를 이용해서 데이터를 작성하여 eeprom에 저장하여 lcd에 출력과 포트 출력을 할수있게 할려고 합니다. 그래서 예제소스를 보았는데 예제소스 결과값이 어떻게 진행되는건지 여줘봐도 되겠습니까? 유아트를 통해서 문자를 출력하는건가 같은데 출력값은 어디서 보여지는건지도 궁금하며 입력은 어떻게 이뤄지며 저장한것을 삭제도 가능하게 된 예제소스인지도 궁금합니다. 바쁜시간에 죄송합니다. // S/W Environment : AVR Studio + WINAVR Compiler // Target : M128 // Crystal: 16MHz // // Made by NEWTC Co., Ltd. in Korea. // DAEWOO RYU // Email : davidryu@newtc.co.kr // +82-2-704-4774(TEL), +82-2-704-4733(FAX) // http://www.newtc.co.kr // example : EEPROM test #include <avr/io.h> #include <avr/eeprom.h> #include <stdio.h> //#include "c:/WinAVR-20100110/avr/include/avr/iom128.h" // UART0 을 이용한 출력 void tx0Char(char message) { while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty UDR0 = message; } // UART1 을 이용한 출력 void tx1Char(char message) { while (((UCSR1A>>UDRE1)&0x01) == 0) ; // UDRE, data register empty UDR1 = message; } static int Putchar(char c, FILE *stream) { tx0Char(c); tx1Char(c); return 0; } void port_init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //m103 output only DDRC = 0xff; PORTD = 0x00; DDRD = 0x00; PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; PORTG = 0x00; DDRG = 0x00; } //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 = 0x18; } //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 16Mhz UBRR1H = 0x00; //set baud rate hi UCSR1B = 0x18; } //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up XMCRA = 0x00; //external memory XMCRB = 0x00; //external memory port_init(); uart0_init(); // UART 0 초기화 uart1_init(); // UART 1 초기화 fdevopen(Putchar,0); 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 //all peripherals are now initialized } void EEP_W(int ad,char val) { eeprom_write_byte(ad,val); } int EEP_R(int ad) { int k; k=eeprom_read_byte(ad); return k; } void delay_us(int time_us) { register int i; for(i=0; i<time_us; i++){ // 4 cycle + asm("PUSH R0"); // 2 cycle + asm("POP R0"); // 2 cycle + asm("PUSH R0"); // 2 cycle + asm("POP R0"); // 2 cycle + /* asm("PUSH R0"); // 2 cycle + asm("POP R0"); // 2 cycle = 16 cycle = 1us for 16MHz*/ } } void delay_ms(int time_ms) { register int i; for(i=0;i<time_ms;i++) delay_us(1000); } void main(void){ unsigned char eeppeint; init_devices(); EEP_W(0,1); EEP_W(1,2); EEP_W(2,4); EEP_W(3,8); EEP_W(4,16); while(1){ eeppeint=EEP_R(0); printf("\n\r%d",eeppeint); delay_ms(500); eeppeint=EEP_R(1); printf("\n\r%d",eeppeint); delay_ms(500); eeppeint=EEP_R(2); printf("\n\r%d",eeppeint); delay_ms(500); eeppeint=EEP_R(3); printf("\n\r%d",eeppeint); delay_ms(500); eeppeint=EEP_R(4); printf("\n\r%d",eeppeint); delay_ms(500); } }
관리자 답변 관리자 · 2015-10-01
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 소스를 보면, init_devices(); //디바이스들을 초기화합니다. EEP_W(0,1); //0번지에 1을 씁니다. EEP_W(1,2); //1번지에 2를 씁니다. EEP_W(2,4); //2번지에 4를 씁니다. EEP_W(3,8); //3번지에 8를 씁니다. EEP_W(4,16); //4번지에 16을 씁니다. 그리고는 > while(1){ > eeppeint=EEP_R(0); > printf("\n\r%d",eeppeint); > delay_ms(500); 0번지에서 값을 읽어서 eepeint에 저장한 후, 이를 다시 UART를 통해 출력합니다. 500ms 딜레이합니다. 1번지에서 값을 읽어서 eepeint에 저장한 후, 이를 다시 UART를 통해 출력합니다. 500ms 딜레이합니다. 2번지에서 값을 읽어서 eepeint에 저장한 후, 이를 다시 UART를 통해 출력합니다. 500ms 딜레이합니다. 3번지에서 값을 읽어서 eepeint에 저장한 후, 이를 다시 UART를 통해 출력합니다. 500ms 딜레이합니다. 4번지에서 값을 읽어서 eepeint에 저장한 후, 이를 다시 UART를 통해 출력합니다. 500ms 딜레이합니다. 읽어서 출력하는 것을 반복합니다. 따라서, 함수를 잘 사용하는 것이 중요합니다. EEP_W(0,1); 이것은 0번지에 숫자 1을 쓰는 것이고, eeppeint=EEP_R(0); 이것은 0번지의 값을 eepeint에 집어넣는 겁니다. 감사합니다. > > > 안녕하세요. > > > > 비도 오고 바쁜시간에 시간내주시어 감사합니다. > > > > 다름이 아니라 이번에 작품을 만들게 되었는데 > > > > 작품에서 직접 키매트릭스를 이용해서 데이터를 작성하여 eeprom에 저장하여 lcd에 출력과 포트 출력을 할수있게 할려고 합니다. > > > > 그래서 예제소스를 보았는데 예제소스 결과값이 어떻게 진행되는건지 여줘봐도 되겠습니까? > > > > 유아트를 통해서 문자를 출력하는건가 같은데 출력값은 어디서 보여지는건지도 궁금하며 > > > > 입력은 어떻게 이뤄지며 저장한것을 삭제도 가능하게 된 예제소스인지도 궁금합니다. > > > > 바쁜시간에 죄송합니다. > > > // S/W Environment : AVR Studio + WINAVR Compiler > // Target : M128 > // Crystal: 16MHz > // > // Made by NEWTC Co., Ltd. in Korea. > // DAEWOO RYU > // Email : davidryu@newtc.co.kr > // +82-2-704-4774(TEL), +82-2-704-4733(FAX) > // http://www.newtc.co.kr > // example : EEPROM test > > #include <avr/io.h> > #include <avr/eeprom.h> > #include <stdio.h> > //#include "c:/WinAVR-20100110/avr/include/avr/iom128.h" > > > > // UART0 을 이용한 출력 > void tx0Char(char message) > { > while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty > UDR0 = message; > } > > // UART1 을 이용한 출력 > void tx1Char(char message) > { > while (((UCSR1A>>UDRE1)&0x01) == 0) ; // UDRE, data register empty > UDR1 = message; > } > > static int Putchar(char c, FILE *stream) > { > tx0Char(c); > tx1Char(c); > return 0; > > } > > > > > void port_init(void) > { > PORTA = 0x00; > DDRA = 0x00; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; //m103 output only > DDRC = 0xff; > PORTD = 0x00; > DDRD = 0x00; > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; > PORTG = 0x00; > DDRG = 0x00; > } > > //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 = 0x18; > } > > //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 16Mhz > UBRR1H = 0x00; //set baud rate hi > UCSR1B = 0x18; > } > > > //call this routine to initialize all peripherals > void init_devices(void) > { > //stop errant interrupts until set up > XMCRA = 0x00; //external memory > XMCRB = 0x00; //external memory > port_init(); > uart0_init(); // UART 0 초기화 > uart1_init(); // UART 1 초기화 > fdevopen(Putchar,0); > > 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 > //all peripherals are now initialized > } > > void EEP_W(int ad,char val) > { > eeprom_write_byte(ad,val); > } > > int EEP_R(int ad) > { > int k; > k=eeprom_read_byte(ad); > return k; > } > > void delay_us(int time_us) > { > register int i; > for(i=0; i<time_us; i++){ // 4 cycle + > asm("PUSH R0"); // 2 cycle + > asm("POP R0"); // 2 cycle + > asm("PUSH R0"); // 2 cycle + > asm("POP R0"); // 2 cycle + > /* asm("PUSH R0"); // 2 cycle + > asm("POP R0"); // 2 cycle = 16 cycle = 1us for 16MHz*/ > } > } > > void delay_ms(int time_ms) > { > register int i; > for(i=0;i<time_ms;i++) delay_us(1000); > } > > void main(void){ > unsigned char eeppeint; > init_devices(); > > EEP_W(0,1); > EEP_W(1,2); > EEP_W(2,4); > EEP_W(3,8); > EEP_W(4,16); > > while(1){ > eeppeint=EEP_R(0); > printf("\n\r%d",eeppeint); > delay_ms(500); > > eeppeint=EEP_R(1); > printf("\n\r%d",eeppeint); > delay_ms(500); > > eeppeint=EEP_R(2); > printf("\n\r%d",eeppeint); > delay_ms(500); > > eeppeint=EEP_R(3); > printf("\n\r%d",eeppeint); > delay_ms(500); > > eeppeint=EEP_R(4); > printf("\n\r%d",eeppeint); > delay_ms(500); > } > } >
9346 답변완료ATMEGA 128 RAM 모듈 사용자입니다. 오에녹 2015-09-30 1,357
안녕하세요. 얼마전에 ATMEGA 128 RAM 모듈을 구매하였씁니다. 1. 모듈이 소비하는 전격전력을 알고 싶습니다. ->해당 모듈을 저희보드쪽에 부착하면 전력이 부족한 현상이 나타나고 있습니다. 2. 내부 핀으로 전압 인가시(P21,P22) 전력을 안정적으로 사용할수 있는 방법을 알고 싶습니다. ->외부핀으로 전압을 인가하면 정상동작하지만 핀으로 전압을 인가하면 전력이 부족한 현상이 나타나고 있습니다. 감사합니다.
관리자 답변 관리자 · 2015-09-30
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 답변을 드리겠습니다. 최근 ATMEGA128은 ATMEGA128A-AU로 판매되는 데, 이 버전은 3.3V를 VCC로 사용하면 8MHz까지만 사용 가능하고, 5V를 VCC로 사용하면 16MHz 까지 클럭으로 사용이 가능합니다. 2.7~5.5V까지로 사용 가능전압이 넓어져 있지요. 참고하시기 바랍니다. 현재 사용하시는 모듈은 16MHz가 끼워져 있으니 5V 동작이 기본입니다. 3.3V 등으로 사용하려면 8MHz로 크리스탈을 하드웨어적으로 변경해야 합니다. 퓨즈비트로 클럭을 조정하여, 최소 클럭으로 할 경우, 속도는 매우 느려지겠지만, 그만큼 전력 소모가 적어지게 됩니다. 이러한 경우에도 본사의 USBISP의 경우 정상동작하도록 설계되어 있으므로, 본사 USBISP의 호환성이 매우 넓게 설계되어 있으므로, 사용이 가능하실 겁니다. 사용하는 클럭이 얼마냐에 따라서, 전력 소모가 달라지게 되므로, 참고하시기 바랍니다. 또한, 저전력으로 사용하려면, 슬립 모드 등도 잘 활용하시고, 사용하지 않는 부분은 꺼 두는 것이 좋겠습니다. ATMEGA128의 데이터 시트를 보시고, ADC 쪽과 슬립모드 쪽을 다 보시면, 전력 소모량을 줄이는 부분들이 잘 설명되어 있을 것이니, 참고하시기 바랍니다. > > 안녕하세요. 얼마전에 ATMEGA 128 RAM 모듈을 구매하였씁니다. > > 1. 모듈이 소비하는 전격전력을 알고 싶습니다. > ->해당 모듈을 저희보드쪽에 부착하면 전력이 부족한 현상이 나타나고 있습니다. ==> CPU의 사용 전력은 사용전압과 전류 그리고 프로그램 동작에 따른 내부 전류 사용 등이 복합적으로 일어납니다. 따라서, 정확히 알려면, 사용하시는 보드에서 측정해야 합니다. > > 2. 내부 핀으로 전압 인가시(P21,P22) 전력을 안정적으로 사용할수 있는 방법을 알고 싶습니다. > ->외부핀으로 전압을 인가하면 정상동작하지만 핀으로 전압을 인가하면 전력이 부족한 현상이 나타나고 있습니다. ==> 옆의 커넥터 핀으로 직접 전원을 인가하려면, 사용하는 VCC와 GND 모두에 연결해 줘야 합니다. 또한, 전원은 적절히 두꺼운 선으로 연결해야 합니다. 너무 PCB 선이 얇거나 해도 전류가 제대로 흐를 수 없어서 전력부족 등의 문제가 생길 수 있습니다. 21번과 52번에는 VCC로 5V를 충분한 전류로 공급해 줘야 하고, 22번, 53번, 63번에는 GND로 적절히 두꺼운 선으로 모두 물려주어야 합니다. 모두 물리지 않으면 문제가 생길 수 있습니다. J6 커넥터로 전원을 주면 정상동작하는 이유는 PCB 설계시에 모두 고려하여 설계되었기 때문입니다. 감사합니다. > > 감사합니다. >
9345 답변완료AM-MS2(스테핑모터 클럭 구동모듈)관련 문의입니다. 이황주 2015-09-29 1,437
다름이 아니라 본사 제품 중에 AM-MS2(스테핑모터 드라이버)를 사용하려고 하는데요. 드라이버 제원을 살펴 보니 기본적으로는 1A로 동작하고 방열판을 부착해야 3A로 구동이 가능하다던데 저는 3A로 사용하려고 합니다. 본 제품에 맞는 규격의 방열판을 알려주시면 감사하겠습니다.
관리자 답변 관리자 · 2015-09-30
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. MS2 드라이버는 1.5A 이상을 사용하게 되면, 추가로 방열판을 사용하여 주어야 합니다. 하지만, MS2는 현재 1.67A정도까지 사용 가능하도록 제작되어 판매되고 있습니다. 원래 이 모듈은 교육용으로 제작된 것인데, CNC 쪽에 직접 쓰시면서, 망가지시는 분들이 계셔서, 특히 MS2가 그런 용도로 많이 사용되어서, 모듈이 쉽게 망가지지 않도록 MS2의 토크를 약하게 해 둔 것입니다. 하지만, 중앙의 큰 저항 4개를 교체하면 3A까지 사용이 가능합니다. 현재는 1옴을 사용하고 있습니다. 0.5옴으로 교체할 경우, I trip = Vref / R, (단, I trip은 최대전류치 ) 여기서 트립 저항을 0.5옴을 쓰면, 1.5 / 0.5 즉, Vref입력은 최대 1.5V이고 회로는 현재 0.5옴을 사용하므로 최대 3A까지 사용이 가능합니다. 모듈에서 저항을 구별하는 쉬운 방법은 중간의 본사에서 달아 나가는 큰 저항의 바깥 색깔이 주황색이면 1옴이고, 녹색이면 0.5옴입니다. 그리고, 말씀하신 것처럼 방열판을 달아야 하는 데, 여기에 맞게 규정된 방열판이 있는 것은 아닙니다. 3A를 쓰신다면 사용 토크가 꽤 크신가 봅니다. 그런 경우, 알루미늄 판으로 넓게 방열판 효과를 내 주시는 것도 좋겠습니다. 교육용으로 제작되어, 처음부터 방열판을 고려하고 제작한 것이 아니라서, 정상적으로는 장착하기 어렵게 되어 있으므로, 위쪽에서 장착을 해야 할 것입니다. 딱 정해진 것은 없지만, 원래 여기에 맞게 만들어진 방열판들은 좀 작아서, 3A가 되면 열이 너무 많이 나는 데, 식혀주지 못하므로, 좀 더 크게 직접 제작하여야 합니다. 감사합니다. > > > 다름이 아니라 본사 제품 중에 > > AM-MS2(스테핑모터 드라이버)를 사용하려고 하는데요. > > 드라이버 제원을 살펴 보니 기본적으로는 1A로 동작하고 방열판을 부착해야 3A로 구동이 가능하다던데 > > 저는 3A로 사용하려고 합니다. > > 본 제품에 맞는 규격의 방열판을 알려주시면 감사하겠습니다. >
9344 답변완료호환문의 김태완 2015-09-25 1,400
스테밍모터 구동모듈상품 http://www.newtc.co.kr/dpshop/shop/item.php?it_id=1314666703 103H5205-0473상품과 호환이 되나요? http://www.devicemart.co.kr/13840 빠른 답변 부탁드립니다 ㅠㅜ
관리자 답변 관리자 · 2015-09-25
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 네, 잘 호환되는 제품입니다. 다만, 모터의 선 배열을 잘 하셔서 하시면 되겠습니다. 감사합니다. > > > 스테밍모터 구동모듈상품 > http://www.newtc.co.kr/dpshop/shop/item.php?it_id=1314666703 > > 103H5205-0473상품과 호환이 되나요? > http://www.devicemart.co.kr/13840 > > 빠른 답변 부탁드립니다 ㅠㅜ >
9343 답변완료ATmega128 pro kit (lite)3축가속도 센서와 GPS모듈 데이터 받는방법 질문드립니다. 안병욱 2015-09-24 1,387
ATmega128 pro kit lite 를 사용하여 3축가속도, GPS 데이터를 받고 싶은데요 10핀 박스 소켓에 그냥 연결하여 예제 코드를 사용해서 데이터를 받을 수 있나요 ? 그런 예제가 찾기 어려워서 질문드립니다.
관리자 답변 관리자 · 2015-09-25
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. GPS 데이터는 scanf를 통하여 %s로 받으시면 됩니다. 따라서, 자료실-->AVR 자료실에서 scanf 예제를 찾아보시면 되겠습니다. 그리고, 데이터를 수신한 후에, 시간 및 위치를 알아내도록, 파싱하는 방법은 자료실-->RENESAS 쪽에서 GPS로 검색해 보시면, 16비트 MCU인 RL78이지만, GPS 파싱 소스가 들어 있습니다. 그 부분을 참고하여 파싱하시면 좋겠습니다. 또한, 3축 가속도 센서는 자료실-->AVR 쪽에서 가속도로 검색하시면 각 컴파일러별로 다 있으니, 찾아서 참고하시면 됩니다. 감사합니다. > > > ATmega128 pro kit lite 를 사용하여 3축가속도, GPS 데이터를 받고 싶은데요 > > 10핀 박스 소켓에 그냥 연결하여 예제 코드를 사용해서 데이터를 받을 수 있나요 ? > > 그런 예제가 찾기 어려워서 질문드립니다. >
9342 답변완료자료 요청의 건 권성호 2015-09-22 1,433
안녕하세요. 제가 AB-M128Pro 개발보드를 구매하고 자료실에서 Manual을 다운받았습니다. 그러나 메인 Board의 회로도가 흐릿하여 잘 보이지 않습니다. 혹시 메인 회로도면의 PDF 파일을 보내주실 수 있으신지요? 메일 주소는 ballista.kwon@gmail.com 입니다. 감사합니다.
관리자 답변 관리자 · 2015-09-23
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 고객지원의 a/s신청 게시판에 회로도 요청관련 구매영수증 등을 사진찍거나 스캔하여 올려주시면, 해당제품은 공개가능한 회로라 올려드릴수 있습니다. 감사합니다. > > > 안녕하세요. > 제가 AB-M128Pro 개발보드를 구매하고 자료실에서 Manual을 다운받았습니다. > 그러나 메인 Board의 회로도가 흐릿하여 잘 보이지 않습니다. > 혹시 메인 회로도면의 PDF 파일을 보내주실 수 있으신지요? > > 메일 주소는 > ballista.kwon@gmail.com 입니다. > > 감사합니다. >
9341 답변완료AT89S52 사용하여 SRF05 초음파센서 관련 프로그램 문의입니다. 임훈 2015-09-22 1,441
안녕하세요. AT89S52 MCU를 사용중인 초보 개발자입니다. AT89S52 MCU를 사용하여 초음파센서와 부저 그리고 LED를 연결한 회로를 만들었습니다. 현재 하고 싶은 기능은 초음파센서에 손을 멀리 대면 LED 불이 1개 들어오고 부저 소리가 짧게 나는거고, 가까이 댈 수록 LED 불이 3개까지 켜지며, 부저 소리도 길게 나는겁니다. 즉 거리에 따라서 LED와 부저가 표시를 해주는 겁니다. 그래서 이에 맞는 C프로그램을 코딩했는데..... 프로그램을 넣어보니 동작을 하지 않네요....T.T 이에 C프로그램을 하기에 올리고, 관련 회로도를 유첨에 첨부하오니, 담당자님들께서 한 번 봐주시고, 어디가 잘못 되어 동작이 되지 않는지 확인 부탁드립니다. 제발 좀 도와주시길 부탁드립니다. 이거 때문에 요즘 잠이 오질 않네요.T.T #include <AT89X52.h> #define Tri_Tx_On P2_0=1 #define Tri_Tx_Off P2_0=0 #define ECHO_OUTPUT P2_1 #define LED1 P1_0 #define LED2 P1_1 #define LED3 P1_2 #define BUZZER P2_7 /* distance1 and distance2 should be fixed by experiments */ #define Distance1 30 #define Distance2 60 /*------------------------------------------------ Timer 0 Interrupt Service Routine. Set a breakpoint on 'overflow_count++' and run the program in the debugger. You will see this line executes every 65536 clock cycles. ------------------------------------------------*/ unsigned int count=0; void delay(int d) { int i,j; for(i=0; i<d; i++) for(j=0; j<100; j++); } void timer0_ISR (void) interrupt 1 { count++; // Increment the overflow count } void main (void) { int i; int distance; int temp; /*-------------------------------------- Set Timer0 for 16-bit timer mode. The timer counts to 65535, overflows, and generates an interrupt. Set the Timer0 Run control bit. --------------------------------------*/ TMOD = (TMOD & 0xF0) | 0x01; /* Set T/C0 Mode */ ET0 = 1; /* Enable Timer 0 Interrupts */ TR0 = 1; /* Start Timer 0 Running */ EA = 1; /* Global Interrupt Enable */ /*-------------------------------------- Do Nothing. Actually, the timer 0 interrupt will occur every 65536 clocks. --------------------------------------*/ while(1){ delay(1); Tri_Tx_On; delay(1); Tri_Tx_Off; while(ECHO_OUTPUT == 0); count=0; while(ECHO_OUTPUT == 1); temp=count; distance=(temp-120)/24; if(distance < Distance1) { LED1 = 0; LED2 = 1; LED3 = 1; BUZZER = 1; delay(1000); BUZZER = 0; delay(1000); } else if(distance < Distance2) { LED1 = 0; LED2 = 0; LED3 = 1; for(i = 0;i < 3;++i) { BUZZER = 1; delay(1000); BUZZER = 0; delay(1000); } } else { LED1 = 0; LED2 = 0; LED3 = 0; for(i = 0;i < 5;++i) { BUZZER = 1; delay(1000); BUZZER = 0; delay(1000); } } } }
관리자 답변 관리자 · 2015-09-22
안녕하세요? 고객님, 아래와 같이 예전에 답변 드렸던 내용입니다. http://www.newtc.co.kr/dpshop/bbs/board.php?bo_table=m52&wr_id=128163&page=2 저희가 소스 코딩이나 회로 등을 도움을 드리게 되면, 프로젝트가 되기 때문에, 비용 관계로 도움을 드리기는 어렵습니다. 양해하여 주시기 바랍니다. 올려드린 예제를 참고하시기 바랍니다. 감사합니다. > > > 안녕하세요. > AT89S52 MCU를 사용중인 초보 개발자입니다. > AT89S52 MCU를 사용하여 초음파센서와 부저 그리고 LED를 연결한 회로를 만들었습니다. > 현재 하고 싶은 기능은 초음파센서에 > 손을 멀리 대면 LED 불이 1개 들어오고 부저 소리가 짧게 나는거고, > 가까이 댈 수록 LED 불이 3개까지 켜지며, 부저 소리도 길게 나는겁니다. > 즉 거리에 따라서 LED와 부저가 표시를 해주는 겁니다. > > 그래서 이에 맞는 C프로그램을 코딩했는데..... > 프로그램을 넣어보니 동작을 하지 않네요....T.T > 이에 C프로그램을 하기에 올리고, 관련 회로도를 유첨에 첨부하오니, > 담당자님들께서 한 번 봐주시고, 어디가 잘못 되어 동작이 되지 않는지 확인 부탁드립니다. > > 제발 좀 도와주시길 부탁드립니다. > 이거 때문에 요즘 잠이 오질 않네요.T.T > > > #include <AT89X52.h> > > #define Tri_Tx_On P2_0=1 > #define Tri_Tx_Off P2_0=0 > #define ECHO_OUTPUT P2_1 > #define LED1 P1_0 > #define LED2 P1_1 > #define LED3 P1_2 > #define BUZZER P2_7 > > > /* distance1 and distance2 should be fixed by experiments */ > #define Distance1 30 > #define Distance2 60 > > > /*------------------------------------------------ > Timer 0 Interrupt Service Routine. > > Set a breakpoint on 'overflow_count++' and run the > program in the debugger. You will see this line > executes every 65536 clock cycles. > ------------------------------------------------*/ > unsigned int count=0; > > void delay(int d) > { > int i,j; > > for(i=0; i<d; i++) > for(j=0; j<100; j++); > } > > > void timer0_ISR (void) interrupt 1 > { > count++; // Increment the overflow count > } > > void main (void) > { > int i; > int distance; > int temp; > > /*-------------------------------------- > Set Timer0 for 16-bit timer mode. The > timer counts to 65535, overflows, and > generates an interrupt. > Set the Timer0 Run control bit. > --------------------------------------*/ > TMOD = (TMOD & 0xF0) | 0x01; /* Set T/C0 Mode */ > ET0 = 1; /* Enable Timer 0 Interrupts */ > TR0 = 1; /* Start Timer 0 Running */ > EA = 1; /* Global Interrupt Enable */ > > /*-------------------------------------- > Do Nothing. Actually, the timer 0 > interrupt will occur every 65536 clocks. > --------------------------------------*/ > while(1){ > delay(1); > Tri_Tx_On; > delay(1); > Tri_Tx_Off; > while(ECHO_OUTPUT == 0); > count=0; > while(ECHO_OUTPUT == 1); > temp=count; > distance=(temp-120)/24; > > if(distance < Distance1) { > LED1 = 0; > LED2 = 1; > LED3 = 1; > BUZZER = 1; > delay(1000); > BUZZER = 0; > delay(1000); > } > else if(distance < Distance2) { > LED1 = 0; > LED2 = 0; > LED3 = 1; > for(i = 0;i < 3;++i) { > BUZZER = 1; > delay(1000); > BUZZER = 0; > delay(1000); > } > } > else { > LED1 = 0; > LED2 = 0; > LED3 = 0; > for(i = 0;i < 5;++i) { > BUZZER = 1; > delay(1000); > BUZZER = 0; > delay(1000); > } > } > } > } >
9340 답변완료AVR_AD usbisp V6.0 손용호 2015-09-21 1,455
AVR_AD usbisp V6.0 드라이버 윈 8.1에 설치해도 돌아가나요????
관리자 답변 관리자 · 2015-09-21
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 네, 예전에 테스트해보니, 잘 돌아갑니다. 감사합니다. > > > AVR_AD usbisp V6.0 드라이버 윈 8.1에 설치해도 돌아가나요???? >
9339 답변완료ATmega128 학습용 USB V2.0 보드를 codevisionavr에서 사용할때 임원택 2015-09-21 1,426
ATmega128 학습용 USB V2.0 보드에서 USB로 직접 연결하여 codevisionAVR에서 프로그램이 가능한가요? 한번 해보니까 STK-500으로 인식되지는 않는것 같습니다.
관리자 답변 관리자 · 2015-09-21
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 128 학습용 USB V2.0 보드의 USB는 USB to Serial 입니다. USBISP와는 성격이 다른 것으로, 첨부한 본사의 Logic ISP를 통하여, USB를 통하여 헥사(.hex) 파일을 다운로드 할 수 있습니다. http://www.newtc.co.kr/dpshop/bbs/board.php?bo_table=m41&wr_id=1039&page=0&sca=&sfl=&stx=&sst=&sod=&spt=0&page=0 방법은, ATMEGA128 모듈의 퓨즈비트를 변경하고, 해당 AVR에 대한 부트로더 hex 파일을 다운로드 하시면 됩니다. 그 이후로는 모듈에 달린 USB를 통하여 USB to Serial 을 드라이버 잡아서 연결한 후, Logic ISP를 실행시키고, 그 드라이버의 COM포트를 설정해 놓습니다. 그리고, 다운로드 하고자 하는 고객님이 직접 짜서 테스트 중인 hex 파일의 위치를 잡아주고, 리셋 스위치를 누르면 다운로드가 됩니다. 그 다음부터는 리셋스위치만 누르면 다운로드 됩니다. 감사합니다. > > > ATmega128 학습용 USB V2.0 보드에서 USB로 직접 연결하여 codevisionAVR에서 프로그램이 > 가능한가요? 한번 해보니까 STK-500으로 인식되지는 않는것 같습니다. >
9338 답변완료[초보자]ATmega128 pro kit 사용중인데요 서보모터 연결과 관련하여 질문드립니다. 안병욱 2015-09-20 1,348
안녕하세요. ATmega128 pro kit과 NTS0090 서보모터 모델을 사용하고 있는데 연결을 어떻게 해야할지 모르겠습니다. 연결 단자를 어떻게 해야할지 알 수 있으면 좋겠습니다.
관리자 답변 관리자 · 2015-09-20
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 우선, 서보모터 제어모듈(저가형) AM-CSV 로 모터연결로 쓸 포트에 연결하고, 자료실--》avr에서 "서보"로 검색하여 사용하는 컴파일러용 소스를 확인한 후, 테스트해보세요. 한 개 정도는 돌아갑니다만, 두 개 이상은 이정도 모터면 5V전류가 부족할수 있으므로, 5V를 외부에서 만든 후 끌어 쓰는게 좋겠습니다. 두 개라면, 5V/3.3V 전원보드 AM-MP533을 활용해보는것도 괜찮습니다. 메인보드의 7805를떼고, 78T05를 구해달고 거기에 방열판을 충분히 달아주면, 4-5개도 사용가능할겁니다. 다만, 78T05가 단종이므로 잘 구해봐야할겁니다. 감사합니다. > > > 안녕하세요. > > ATmega128 pro kit과 NTS0090 서보모터 모델을 사용하고 있는데 연결을 어떻게 해야할지 모르겠습니다. 연결 단자를 어떻게 해야할지 알 수 있으면 좋겠습니다. >
9337 답변완료STM32F103 보드 Eclipse 책 따라가던 중 발생 한 문제 정민교 2015-09-18 1,445
코어텍스 M3 책 따라하면서 학습중입니다. 73~74페이지 진행중인데, 계속 에러가 발생합니다. 책에 있는 내용 그대로했는데 뭐가 문제인지 모르겠습니다.
관리자 답변 관리자 · 2015-09-18
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 월요일에 출근하여 확인후 답변올려드리겠습니다. 그 동안에는 자료실의 예제를 참고하셔서 찾아보세요. 감사합니다. > > > 코어텍스 M3 책 따라하면서 학습중입니다. > > 73~74페이지 진행중인데, 계속 에러가 발생합니다. > > 책에 있는 내용 그대로했는데 뭐가 문제인지 모르겠습니다. >
9336 답변완료자료실에서 본대로 작성했음에도 안됩니다. 김경모 2015-09-18 1,433
avr studio 4.0으로 짰구요. 기판은 ATmega128이며 모터드라이버는 am-dc1-3d입니다. 인터럽트를 이용한 풀업저항을 쓴 모터 구동 코드입니다. 010-2910-5608 제 전화번호입니다. 코드에 이상한 점이나 모르는점. 빠진 정보가 있으면 전화주세요. 감사합니다.
관리자 답변 관리자 · 2015-09-18
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 죄송하지만, 저희가 고객님의 코드를 분석해서 도움을 드리지는 못합니다. 양해하여 주시기 바랍니다. 감사합니다. > > > avr studio 4.0으로 짰구요. > > 기판은 ATmega128이며 모터드라이버는 am-dc1-3d입니다. > > 인터럽트를 이용한 풀업저항을 쓴 모터 구동 코드입니다. > > 010-2910-5608 > 제 전화번호입니다. 코드에 이상한 점이나 모르는점. 빠진 정보가 있으면 전화주세요. 감사합니다. >
9335 답변완료AM-2560PRO 모듈에 사용할 수 있는 JTAG 에뮬레이터 추천 부탁합니다. 이승규 2015-09-18 1,456
수고 많으십니다. 시중에 나와 있는 에뮬레이터는 ATmega128은 지원되나 2560은 지원되는 것이 잘 없더군요 ATmega2560을 지원하는 에뮬레이터 지원부탁합니다.
관리자 답변 관리자 · 2015-09-18
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. ATMEL사의 정품 Atmel-ICE, AVR Dragon, JTAG mkII, JTAGICE 3, AVR ONE 가 지원됩니다. 본사에는 아직 ATMEGA2560에 지원되는 JTAG 에뮬레이터가 없습니다. 감사합니다. > > > 수고 많으십니다. > 시중에 나와 있는 에뮬레이터는 ATmega128은 지원되나 2560은 지원되는 것이 잘 없더군요 > ATmega2560을 지원하는 에뮬레이터 지원부탁합니다. >
9334 답변완료STM32F103 문의드립니다 김택진 2015-09-18 1,551
책을 보고 따라하던 중 아래와 같은 오류가 발생하였습니다. 해결 방법을 알고 싶습니다
관리자 답변 관리자 · 2015-09-18
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 다음 링크의 프로그램으로 다시 해보세요. 처음에 잠시 배포버전에 문제가 있었는데, 해결된 버전을 곧 올려놓았습니다. 자료실--》arm쪽에 있습니다. http://www.newtc.co.kr/dpshop/bbs/board.php?bo_table=m42&wr_id=26 감사합니다. > > > 책을 보고 따라하던 중 아래와 같은 오류가 발생하였습니다. > > 해결 방법을 알고 싶습니다 >