로그인 | 회원가입 | 주문 조회
총 10,743개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
9093 답변완료라인트레이서 문의 드립니다. 이현승 2015-03-04 1,508
안녕하십니까? KT-M128-LT 사용자입니다. 적외선센서가 각각 PORTF의 어느 핀에 할당 되는 지 알고 싶습니다. 그리고 터미널에 글자가 깨져서 표시되는데 아래의 코드중에서 잘 못된 점이 있으면 자세한 조언 좀 부탁 드리겠읍니다. 제품을 구매할 때 받은 CD엔 미완성의 라인트레이서 소스가 있는데, 완성된 라인트레이서 소스를 구할 수 있읍니까? 현재 모터만 돌리고 별 진전이 없읍니다. // LineTracer Application // Target : M128 // Crystal: 11.059Mhz // Programed by Minsuk Kim #include <iom128v.h> #include <macros.h> #include <stdio.h> #define FAST_SPEED 0x80 // 센서가 감지되었을때 빠른 바퀴의 센서값 #define SLOW_SPEED 0x10 // 센서가 감지되었을때 느린 바퀴의 센서값 #define THRESHOLD 17 // 센서의 라인 감지 임계값 #define EX_LCD_DATA (*(volatile unsigned char *)0x8000) #define EX_LCD_CONTROL (*(volatile unsigned char *)0x8001) #define EX_SS_DATA (*(volatile unsigned char *)0x8002) #define EX_SS_SEL (*(volatile unsigned char *)0x8003) #define EX_DM_SEL (*(volatile unsigned int *)0x8004) #define EX_DM_DATA (*(volatile unsigned int *)0x8006) #define EX_LED (*(volatile unsigned char *)0x8008) #define EX_STEPPING (*(volatile unsigned char *)0x8009) #define EX_DCMOTOR (*(volatile unsigned char *)0x800A) #define EX_SERVO (*(volatile unsigned char *)0x800B) #define MOTOR_PORT EX_STEPPING //unsigned char motorOneClock(unsigned char, char); unsigned char l_speed=0, r_speed=0; // 모터를 구동 위한 타이머 값 unsigned char motorOneClock(unsigned char step, char dir) { unsigned char test; step = step & 0x0f; if(dir){ switch(step){ case 0x03 : step=0x06; break; case 0x06 : step=0x0c; break; case 0x0c : step=0x09; break; case 0x09 : step=0x03; break; default : step=0x03; break; } }else{ switch(step){ case 0x03 : step=0x09; break; case 0x06 : step=0x03; break; case 0x0c : step=0x06; break; case 0x09 : step=0x0c; break; default : step=0x03; break; } } return step; } void port_init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; DDRC = 0x00; PORTD = 0x00; DDRD = 0xff; // Stepping Motor Port Left, Right PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; // LED Port PF1, PF2 PORTG = 0x00; DDRG = 0x00; } //UART0 initialize // desired baud rate: 9600 // actual: baud rate:9600 (0.0%) // char size: 8 bit // parity: Disabled void uart0_init(void) { UCSR0B = 0x00; //disable while setting baud rate UCSR0A = 0x00; UCSR0C = 0x06; UBRR0L = 0x47; //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; ADCSRA = 0xC6; } //TIMER2 initialize - prescale:64 // WGM: Normal // desired value: 1KHz // actual value: 1.008KHz (0.8%) void timer2_init(void) { TCCR2 = 0x00; //stop TCNT2 = 0xF1; //setup OCR2 = 0x0F; TCCR2 = 0x04; //start } #pragma interrupt_handler timer2_ovf_isr:11 void timer2_ovf_isr(void) { unsigned char temp; CLI(); //disable all interrupts temp = MOTOR_PORT & 0x0f; TCNT2 = l_speed; //reload counter value if(l_speed == 0){ temp = temp; }else{ temp = motorOneClock(temp, 1); } MOTOR_PORT = temp | (MOTOR_PORT & 0xf0); SEI(); //re-enable interrupts } //TIMER3 initialize - prescale:64 // WGM: 0) Normal, TOP=0xFFFF // desired value: 1KHz // actual value: 1.008KHz (0.8%) void timer3_init(void) { TCCR3B = 0x00; //stop TCNT3H = 0xFF; //setup TCNT3L = 0xF1; OCR3AH = 0x00; OCR3AL = 0x0F; OCR3BH = 0x00; OCR3BL = 0x0F; OCR3CH = 0x00; OCR3CL = 0x0F; ICR3H = 0x00; ICR3L = 0x0F; TCCR3A = 0x00; TCCR3B = 0x04; //start Timer } #pragma interrupt_handler timer3_ovf_isr:30 void timer3_ovf_isr(void) { unsigned char temp; CLI(); //disable all interrupts //TIMER3 has overflowed TCNT3H = 0xFF; //reload counter high value temp = (MOTOR_PORT & 0xf0)>>4; TCNT3L = r_speed; //reload counter low value if(r_speed == 0){ temp = temp; }else{ temp = motorOneClock(temp, 0); } MOTOR_PORT = (temp<<4) | (MOTOR_PORT & 0x0f); SEI(); //re-enable interrupts } //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(); timer2_init(); timer3_init(); MCUCR = 0x00; EICRA = 0x00; //extended ext ints EICRB = 0x00; //extended ext ints EIMSK = 0x00; TIMSK = 0x40; //timer interrupt sources ETIMSK = 0x04; //extended timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialized } int putchar(char c) { while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty UDR0 = c; return c; } // scanf 함수 사용시 추가할 것. int getchar(void) { while ((UCSR0A & 0x80) == 0); return UDR0; } /* Analog Converter--------------------------------*/ void startConvertion(unsigned char ch) { ADCSRA = ADCSRA & 0x3f; ADMUX = 0x60 | (ch & 0x0f); // 원래는 0x20 ADCSRA = ADCSRA | 0xc7; } unsigned char readConvertData(void) { volatile unsigned char temp; while((ADCSRA & 0x10)==0); ADCSRA = ADCSRA | 0x10; temp = ADCL; temp = ADCH; return temp; } /*-------------------------------------------------*/ void delay(int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<600;j++); } } /* Stepping Motor derive---------------------------*/ /* main function-----------------------------------*/ void main(void) { volatile unsigned char temp, l_sensor, r_sensor; volatile unsigned char step=0; init_devices(); //insert your functional code here... printf(" \n\n\rtest program...\n\r"); EX_LED = 0x03; delay(1000); EX_LED = 0x00; delay(1000); EX_LED = 0x03; while(1){ l_sensor = 0; r_sensor = 0; startConvertion(0); // Left sensor Converting l_sensor = readConvertData(); startConvertion(3); // Right sensor Converting r_sensor = readConvertData(); EX_LED = 0x03; if(l_sensor > THRESHOLD && r_sensor < THRESHOLD){ l_speed = SLOW_SPEED; r_speed = FAST_SPEED; EX_LED = 0x01; }else if(l_sensor < THRESHOLD && r_sensor > THRESHOLD){ l_speed = FAST_SPEED; r_speed = SLOW_SPEED; EX_LED = 0x02; }else{ l_speed = FAST_SPEED; r_speed = FAST_SPEED; } printf("ch6 :%d ch7 : %d\n\r", l_sensor, r_sensor); } }
관리자 답변 관리자 · 2015-03-05
안녕하세요? 고객님, 저희 뉴티씨 젶무을 이용하여 주셔서 감사합니다. 현재 사용중이신 라인트레이서에 달린 센서가 4개짜리인지, 2개짜리인지 제품명을 체크해 보세요. 초기에는 아날로그 타입의 센서 2개짜리(AM-IRS)가 장착되어 출시되었었고, 그 당시에는 F 포트를 사용하여 ADC를 해서 썻습니다. 지금 보는 소스도 아날로그 타입이네요. 현재는 디지탈센서 타입으로 센서 4개짜리(AM-IRS4D)가 장착되어 출시되었고, 현재에도 F 포트를 사용하여 ADC를 해서 쓰고 있습니다만, Digital 입출력 포트로 해서 입력받아 사용하고 있습니다. 어떤 센서를 쓰는가에 따라서, 사용법이 다릅니다. 현재의 디지털 방식 센서를 쓰는 경우의 예제는 남기신 이메일로 송부해드리겠습니다. 감사합니다. > > > 안녕하십니까? > KT-M128-LT 사용자입니다. > 적외선센서가 각각 PORTF의 어느 핀에 할당 되는 지 알고 싶습니다. > 그리고 터미널에 글자가 깨져서 표시되는데 아래의 코드중에서 잘 못된 점이 있으면 > 자세한 조언 좀 부탁 드리겠읍니다. > 제품을 구매할 때 받은 CD엔 미완성의 라인트레이서 소스가 있는데, > 완성된 라인트레이서 소스를 구할 수 있읍니까? > 현재 모터만 돌리고 별 진전이 없읍니다. > > > // LineTracer Application > // Target : M128 > // Crystal: 11.059Mhz > // Programed by Minsuk Kim > > > > #include <iom128v.h> > #include <macros.h> > #include <stdio.h> > > #define FAST_SPEED 0x80 // 센서가 감지되었을때 빠른 바퀴의 센서값 > > #define SLOW_SPEED 0x10 // 센서가 감지되었을때 느린 바퀴의 센서값 > > #define THRESHOLD 17 // 센서의 라인 감지 임계값 > > #define EX_LCD_DATA (*(volatile unsigned char *)0x8000) > #define EX_LCD_CONTROL (*(volatile unsigned char *)0x8001) > #define EX_SS_DATA (*(volatile unsigned char *)0x8002) > #define EX_SS_SEL (*(volatile unsigned char *)0x8003) > #define EX_DM_SEL (*(volatile unsigned int *)0x8004) > #define EX_DM_DATA (*(volatile unsigned int *)0x8006) > #define EX_LED (*(volatile unsigned char *)0x8008) > #define EX_STEPPING (*(volatile unsigned char *)0x8009) > #define EX_DCMOTOR (*(volatile unsigned char *)0x800A) > #define EX_SERVO (*(volatile unsigned char *)0x800B) > > #define MOTOR_PORT EX_STEPPING > > //unsigned char motorOneClock(unsigned char, char); > > > > unsigned char l_speed=0, r_speed=0; // 모터를 구동 위한 타이머 값 > > unsigned char motorOneClock(unsigned char step, char dir) > { > unsigned char test; > step = step & 0x0f; > if(dir){ > switch(step){ > case 0x03 : step=0x06; break; > case 0x06 : step=0x0c; break; > case 0x0c : step=0x09; break; > case 0x09 : step=0x03; break; > default : step=0x03; break; > } > }else{ > switch(step){ > case 0x03 : step=0x09; break; > case 0x06 : step=0x03; break; > case 0x0c : step=0x06; break; > case 0x09 : step=0x0c; break; > default : step=0x03; break; > } > } > return step; > } > > > void port_init(void) > { > PORTA = 0x00; > DDRA = 0x00; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; > DDRC = 0x00; > PORTD = 0x00; > DDRD = 0xff; // Stepping Motor Port Left, Right > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; // LED Port PF1, PF2 > PORTG = 0x00; > DDRG = 0x00; > } > //UART0 initialize > // desired baud rate: 9600 > // actual: baud rate:9600 (0.0%) > // char size: 8 bit > // parity: Disabled > void uart0_init(void) > { > UCSR0B = 0x00; //disable while setting baud rate > UCSR0A = 0x00; > UCSR0C = 0x06; > UBRR0L = 0x47; //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; > ADCSRA = 0xC6; > } > //TIMER2 initialize - prescale:64 > // WGM: Normal > // desired value: 1KHz > // actual value: 1.008KHz (0.8%) > void timer2_init(void) > { > TCCR2 = 0x00; //stop > TCNT2 = 0xF1; //setup > OCR2 = 0x0F; > TCCR2 = 0x04; //start > } > #pragma interrupt_handler timer2_ovf_isr:11 > void timer2_ovf_isr(void) > { > unsigned char temp; > CLI(); //disable all interrupts > temp = MOTOR_PORT & 0x0f; > TCNT2 = l_speed; //reload counter value > > if(l_speed == 0){ > temp = temp; > }else{ > temp = motorOneClock(temp, 1); > } > > MOTOR_PORT = temp | (MOTOR_PORT & 0xf0); > SEI(); //re-enable interrupts > } > //TIMER3 initialize - prescale:64 > // WGM: 0) Normal, TOP=0xFFFF > // desired value: 1KHz > // actual value: 1.008KHz (0.8%) > void timer3_init(void) > { > TCCR3B = 0x00; //stop > TCNT3H = 0xFF; //setup > TCNT3L = 0xF1; > OCR3AH = 0x00; > OCR3AL = 0x0F; > OCR3BH = 0x00; > OCR3BL = 0x0F; > OCR3CH = 0x00; > OCR3CL = 0x0F; > ICR3H = 0x00; > ICR3L = 0x0F; > TCCR3A = 0x00; > TCCR3B = 0x04; //start Timer > } > #pragma interrupt_handler timer3_ovf_isr:30 > void timer3_ovf_isr(void) > { > unsigned char temp; > CLI(); //disable all interrupts > //TIMER3 has overflowed > TCNT3H = 0xFF; //reload counter high value > temp = (MOTOR_PORT & 0xf0)>>4; > TCNT3L = r_speed; //reload counter low value > if(r_speed == 0){ > temp = temp; > }else{ > temp = motorOneClock(temp, 0); > } > MOTOR_PORT = (temp<<4) | (MOTOR_PORT & 0x0f); > SEI(); //re-enable interrupts > } > //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(); > timer2_init(); > timer3_init(); > MCUCR = 0x00; > EICRA = 0x00; //extended ext ints > EICRB = 0x00; //extended ext ints > EIMSK = 0x00; > TIMSK = 0x40; //timer interrupt sources > ETIMSK = 0x04; //extended timer interrupt sources > SEI(); //re-enable interrupts > //all peripherals are now initialized > } > > int putchar(char c) > { > while (((UCSR0A>>UDRE0)&0x01) == 0) ; // UDRE, data register empty > > UDR0 = c; > return c; > } > > // scanf 함수 사용시 추가할 것. > int getchar(void) > { > while ((UCSR0A & 0x80) == 0); > return UDR0; > } > > /* Analog Converter--------------------------------*/ > void startConvertion(unsigned char ch) > { > ADCSRA = ADCSRA & 0x3f; > ADMUX = 0x60 | (ch & 0x0f); // 원래는 0x20 > ADCSRA = ADCSRA | 0xc7; > } > unsigned char readConvertData(void) > { > volatile unsigned char temp; > while((ADCSRA & 0x10)==0); > ADCSRA = ADCSRA | 0x10; > temp = ADCL; > temp = ADCH; > return temp; > } > /*-------------------------------------------------*/ > void delay(int n) > { > volatile int i,j; > for(i=1;i<n;i++) > { > for(j=1;j<600;j++); > } > } > /* Stepping Motor derive---------------------------*/ > > /* main function-----------------------------------*/ > void main(void) > { > volatile unsigned char temp, l_sensor, r_sensor; > volatile unsigned char step=0; > init_devices(); > //insert your functional code here... > printf(" \n\n\rtest program...\n\r"); > EX_LED = 0x03; > delay(1000); > EX_LED = 0x00; > delay(1000); > EX_LED = 0x03; > while(1){ > l_sensor = 0; > r_sensor = 0; > startConvertion(0); // Left sensor Converting > l_sensor = readConvertData(); > startConvertion(3); // Right sensor Converting > r_sensor = readConvertData(); > EX_LED = 0x03; > if(l_sensor > THRESHOLD && r_sensor < THRESHOLD){ > l_speed = SLOW_SPEED; > r_speed = FAST_SPEED; > EX_LED = 0x01; > }else if(l_sensor < THRESHOLD && r_sensor > THRESHOLD){ > l_speed = FAST_SPEED; > r_speed = SLOW_SPEED; > EX_LED = 0x02; > }else{ > l_speed = FAST_SPEED; > r_speed = FAST_SPEED; > } > printf("ch6 :%d ch7 : %d\n\r", l_sensor, r_sensor); > } > } >
9092 답변완료8051보드 궁금한게 있습니다. 김선동 2015-03-04 1,421
8051 보드를 고민하고 있는데요 8051 누르니 보드가 2가지 있는데요 AB-S52 하고 AB-S52K 하고 있는데요 차이가 무엇인가요? 보드는 같아보이는데 금액이 달라서요...
관리자 답변 관리자 · 2015-03-04
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용해주셔서 감사드립니다. 안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사드립니다. AB-S52K는 킷트 제품으로 첨부한 그림의 내용이 들어 있습니다. 다른 하나는 메인보드만 들어 있습니다. 감사합니다. > > > 8051 보드를 고민하고 있는데요 > 8051 누르니 보드가 2가지 있는데요 > AB-S52 하고 AB-S52K 하고 있는데요 > 차이가 무엇인가요? > 보드는 같아보이는데 금액이 달라서요... >
9091 답변완료AVR Studio6.2 에서 사용시 AD-USB-ISP 문의 드립니다. 김길현 2015-03-02 1,460
안녕하세요. AVR Studio6.2 이전 버전으로 ISP를 잘 사용하고 있는데요. 이번에 웹에서 AVR Studio6.2 버전을 새로 받아서 설치 해서 하면 add target에서 나타나지 않거나 참부된 사진 처럼 프로그램 할 수 없는 것 처럼 작동합니다. ISP는 다른 곳에서 잘 작동 합니다. 몇 대 컴퓨터에서 확인 해보았는데, AVR 최신 버전을 설치 한 곳에서 이런 현상이 일어나는 것 같습니다. 확인 부탁드립니다.
관리자 답변 관리자 · 2015-03-02
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. USBISP V03.6은 atmel studio v6.xx에서 사용가능하지만, 타겟전압체크는 하지 못합니다. V4.0이상의 제품 즉, 현재는 USBISP V6.0은 전체 기능을 모두 제공합니다. 따라서 그 부분의 불편함은 V6.0으로 해결이 가능합니다. V03.6은 앞으로 펌업을 통하여 해당부문 문제가 일어나지 않도록 해드릴 예정입니다만, 향후 5월말까지 예정되어 있습니다. 그 부분이 나와도 사용에는 문제가 없으시므로, 펌업을 기다려주세요. 펌업시 본사에서 별도로 이곳에 공지합니다. 감사합니다. > > > 안녕하세요. > > AVR Studio6.2 이전 버전으로 ISP를 잘 사용하고 있는데요. > > 이번에 웹에서 AVR Studio6.2 버전을 새로 받아서 설치 해서 하면 add target에서 > > 나타나지 않거나 참부된 사진 처럼 프로그램 할 수 없는 것 처럼 작동합니다. > > ISP는 다른 곳에서 잘 작동 합니다. > > 몇 대 컴퓨터에서 확인 해보았는데, AVR 최신 버전을 설치 한 곳에서 이런 현상이 일어나는 것 같습니다. > > 확인 부탁드립니다. >
9090 답변완료serial to usb 주연정 2015-02-27 1,462
안녕하세요. USB to Serial V02 변환 보드를 구매했습니다. 사용목적은 ttl 레벨의 serial 통신을 쉽게 사용하고자 함이었습니다. stm32 보드를 사용중이고, 거기서 다른 usb to uart 기기를 사용했을 경우 통신이 제대로 되었습니다. 그런데 USB to Serial V02 변환 보드에서 테스트를 할때는 글자가 깨져서 나옵니다. bps, 포트 이런 거는 다 확인을 했고, 다른 usb to uart기를 사용하면서 완벽하게 테스트 된 상황입니다. 그런데 유독 이 보드만 거치면 이러네요... 메뉴얼을 읽어보았으나 별다른 방법을 찾지 못해 문의 남겨봅니다. 사용시에, 다른 방법이 있는건가요? 아니면 A/S를 보내야 할까요?
관리자 답변 관리자 · 2015-02-27
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 혹시, 어떤 커넥터를 사용하셨나요? AD-USBSERIAL V02의 4핀 커넥터(J3)를 사용하시면 TTL Level이고, 3핀 커넥터(J4)와 9핀 DSUB커넥터는 RS-232C Level입니다. 혹시 3핀 커넥터 쪽에 연결하신 것은 아닌지요? 3핀 커넥터 연결시 그럴 수는 있을 것 같습니다. 저희도 내부에서 STM32F....칩으로 개발을 많이 하고 있습니다만, 본 제품 사용시 아무런 문제가 없습니다. 또한, 최신 칩셋을 채용하고 있어서 현존하는 해당 칩들 중 가장 좋은 스펙으로 알고 있습니다. 따라서, 아마도, 위의 문제가 아니라면, 제품 불량의 소지가 있어 보입니다. 해당 젶무은 1:1로 테스트되어 나가고 있어서 그럴 소지는 작긴 합니다만, 사람이 하는 일이라 제품에 이상이 있을 가능성도 있습니다. 위에 말씀드린 문제를 일단 확인하신 후, 글을 남겨 주세요. 본사에서 좀 더 자세한 내용을 듣기 위하여 전화를 드렸으나, 유선, 무선 모두 받지 않고 계십니다. 감사합니다. > > > 안녕하세요. > > USB to Serial V02 변환 보드를 구매했습니다. > > 사용목적은 ttl 레벨의 serial 통신을 쉽게 사용하고자 함이었습니다. > > stm32 보드를 사용중이고, 거기서 다른 usb to uart 기기를 사용했을 경우 통신이 제대로 되었습니다. > > 그런데 USB to Serial V02 변환 보드에서 테스트를 할때는 글자가 깨져서 나옵니다. > > bps, 포트 이런 거는 다 확인을 했고, 다른 usb to uart기를 사용하면서 완벽하게 테스트 된 상황입니다. > > 그런데 유독 이 보드만 거치면 이러네요... 메뉴얼을 읽어보았으나 별다른 방법을 찾지 못해 문의 남겨봅니다. > > 사용시에, 다른 방법이 있는건가요? 아니면 A/S를 보내야 할까요? >
9089 답변완료AB-S52 질문좀.. 안지혁 2015-02-26 1,441
안녕하세여 AB-S52를 구매해서 공부중인데요.. 8051에는 adc가 없는건가요?? 데이터 시트를 보니 port0가 adc포트로 사용하는거 같은데... avr이나 pic처럼 adc레지스터는 없더라구여.. 있다면 adc 관련 자료는 없나여??
관리자 답변 관리자 · 2015-02-26
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 타사의 8051 계열 등에는 일부 ADC 기능이 포함된 것들도 있습니다만, ATMEL사의 AT89S52에는 ADC 기능이 없습니다. AT89S52과 함께는 ADC0809같은 ADC 칩을 사용하시기를 권고합니다. 감사합니다. > > > 안녕하세여 AB-S52를 구매해서 공부중인데요.. > > 8051에는 adc가 없는건가요?? 데이터 시트를 보니 port0가 adc포트로 사용하는거 같은데... > > avr이나 pic처럼 adc레지스터는 없더라구여.. > > 있다면 adc 관련 자료는 없나여?? >
9088 답변완료소프트웨어 문의 윤성식 2015-02-26 1,475
현재 판매중이신 iccavr8 제품이 icc 홈페이지에서는 jump starter 제품으로 바뀐거 같은데 jump starter 는 판매 안 하시나요?
관리자 답변 관리자 · 2015-02-26
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 질문에 답변 드리겠습니다. > 현재 판매중이신 iccavr8 제품이 > icc 홈페이지에서는 jump starter 제품으로 바뀐거 같은데 > jump starter 는 판매 안 하시나요? ==> 같은 제품입니다. 예전의 이름으로 판매하고 있습니다. 이름만 바뀐 상태입니다. 제품소개에 해당부분 추가하여 고쳐두도록 하겠습니다. 감사합니다.
9087 답변완료USB ISP 드라이버 설치 문제 강호은 2015-02-25 1,419
안녕하세요 답변해주신 대로 이전에 설치된 드라이버를 삭제하고 알려주신 사이트에서 새로운 드라이버 받아서 설치했는데, 동일하게 현상입니다. 캡쳐화면 첨부했습니다. 도움 부탁드립니다.
관리자 답변 관리자 · 2015-02-26
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 답변 드리겠습니다. > 안녕하세요 > 답변해주신 대로 이전에 설치된 드라이버를 삭제하고 알려주신 사이트에서 새로운 드라이버 받아서 설치했는데, 동일하게 현상입니다. > 캡쳐화면 첨부했습니다. 도움 부탁드립니다. ==> 그 드라이버를 설치해도 안되는 경우는, 두 가지 정도가 가정됩니다. 한 가지는 CP2103 칩 불량인 경우가 있고, ==> 이런 경우는 두 번째는 시간 동기화를 안하시면, OS의 보안 설정상 그런 경우가 있을 수 있습니다. 따라서, 이 경우는 화면 오른쪽 아래 시계에서 "날짜 및 시간설정변경"==> 인터넷시간 ==> 설정변경 ==> 인터넷서버와 동기화를 체크하신 후, 지금업데이트를 하면 그 이후에, 드라이버를 지우고, 다시 깔아보세요. 그런 경우, 보안설정에 통과되서 드라이버가 깔릴 수도 있습니다. 이것은 노트북인 경우 그런 경우가 많은데, 노트북에 따라서, 그런 설정을 막는 보안설정을 디폴트로 해 놓는 경우가 있어서입니다. 그래도 안되면, 본사로 제품을 보내서 점검받아 보시기 바랍니다. 감사합니다.
9086 답변완료제품 문의 드립니다. 정덕관 2015-02-25 1,458
AVR용 USB-ISP V03.6스페셜 (일반용) , AVR MEGA 128 모듈 라이트 위 제품 2개를 구입하려고 합니다. 이제 막 avr을 공부를 시작하는 것이기 때문에 자세한 것을 알고싶습니다. 위 제품 2개만 있으면 프로그래밍만 하면 되는지. 추가적인 전원 입력은 필요 없는지 필요하다면 전원입력을 몇볼트로 해야되는지. output으로는 몇 볼트가 나오는지. 알고 싶습니다. 감사합니다.
관리자 답변 관리자 · 2015-02-26
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 답변 드리겠습니다. > AVR용 USB-ISP V03.6스페셜 (일반용) , AVR MEGA 128 모듈 라이트 > 위 제품 2개를 구입하려고 합니다. > 이제 막 avr을 공부를 시작하는 것이기 때문에 자세한 것을 알고싶습니다. > > 위 제품 2개만 있으면 > 프로그래밍만 하면 되는지. ==> 네, 가능합니다. > 추가적인 전원 입력은 필요 없는지 필요하다면 전원입력을 몇볼트로 해야되는지. ==> USBISP V03.6의 USB로 5V를 AVR에 전원입력을 줄 수 있고, USBISP V6.0의 USB로 5V 또는 3.3V를 AVR에 전원입력을 줄 수 있습니다. 따라서, 추가적인 전원은 없어도 됩니다만, 모터 등을 돌리신다면, USB 2.0 규정상 500mA를 넘을 수 없고, PC 설계에 따라 실제로는 350mA 정도를 넘지 못하므로, 그 떄에는 외부 전원을 별도로 줘야 합니다. > output으로는 몇 볼트가 나오는지. > 알고 싶습니다. > 감사합니다. ==> 감사합니다.
9085 답변완료windows 8.1에서 USBISP 드라이버 설치가 안됩니다. 강호은 2015-02-24 1,437
안녕하세요. windows 8.1 에서 usb isp 드라이버가 설치가 안되네요. 자료실에 있는 "CP210x_VCP_WindowsXPServer 2003Vista_W7W8 (v6.6.1).zip" 받아서 설치했는데, 드라이버가 잡히 않고, "장치관리자 -> 기타 장치" 에 "?" 표시가 나타납니다. 이전 windows 7에서는 정상 설치되면 "장치관리자 -> 포트(COM&LPT)"에 표시되었습니다. 해결 방법이 있으면 알려주십시오.
관리자 답변 관리자 · 2015-02-24
안녕하십니까? 기존 것은 제어판 프로그램 추가삭제에서 반드시 모두 제거하시고, 최신 드라이버로 깔아 보세요. windows 8.1용: http://www.silabs.com/Support%20Documents/Software/CP210x_VCP_Windows.zip 반응 보시고, 다시 올려 주세요. 감사합니다. > > > 안녕하세요. > > windows 8.1 에서 usb isp 드라이버가 설치가 안되네요. > 자료실에 있는 "CP210x_VCP_WindowsXPServer 2003Vista_W7W8 (v6.6.1).zip" 받아서 설치했는데, 드라이버가 잡히 않고, "장치관리자 -> 기타 장치" 에 "?" 표시가 나타납니다. > 이전 windows 7에서는 정상 설치되면 "장치관리자 -> 포트(COM&LPT)"에 표시되었습니다. > > 해결 방법이 있으면 알려주십시오. >
9084 답변완료AD-USBISP V03.6 관련문의 조남이 2015-02-24 1,427
AD-USBISP V03.6 드라이버 설치하여 Port 에 잡힌거 확인하였습니다. 이후 진행에서 atmel studio 6.2의 Device programming에서 Tool과 Device에 아무것도 잡히지 않네요... 드라이버 재설치해봐도 똑같네요... add target까지는 port가 뜹니다.
관리자 답변 관리자 · 2015-02-24
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. Add target 에서 STK500 포트가 나타난 뒤 Apply 버튼을 누르셔야 합니다. 이 과정이 제대로 되었다면 View 메뉴의 Available Atmel Tools 메뉴를 선택하여 해당하는 STK500 이 등록되었는지 확인하셔야 합니다. 등록이 되었다면 해당 등록된 메뉴를 오른 클릭한 후 Device Programming 메뉴를 선택하여 프로그램 설정 메뉴에 진입할 수 있습니다. 이 과정에서 마찬가지로 문제가 발생한다면 Atmel Studio 6.2 설치 과정에 문제가 발생하였거나 관련 파일이 손상된 경우입니다. 따라서 이 경우 Atmel Studio 6.2 를 재설치하는 것을 권장드립니다. 감사합니다. > > > AD-USBISP V03.6 드라이버 설치하여 Port 에 잡힌거 확인하였습니다. > > 이후 진행에서 atmel studio 6.2의 Device programming에서 Tool과 Device에 아무것도 잡히지 않네요... > > 드라이버 재설치해봐도 똑같네요... > > add target까지는 port가 뜹니다. >
9083 답변완료스텝모터 기구부 수정에 관련된 질문입니다. 정진환 2015-02-23 1,399
안녕하세요. 스텝모터의 가운데 돌아가는 부분..(이름을 모르겠네요 ^^;) 이게 대략 3~5cm 정도 되는것 같은데.. 이걸 20cm정도로 늘릴 수 있을까요? 아니면, 확장을 할 수 있는 기구(?)나 막대기 같은게 있을까요? 끝에는 휠(SE-WST2)을 연결할겁니다... 방법이 있을까요?
관리자 답변 관리자 · 2015-02-24
안녕하세요? 고객님, 질문에 답변 드리겠습니다. > 안녕하세요. > 스텝모터의 가운데 돌아가는 부분..(이름을 모르겠네요 ^^;) ==> 샤프트라고 합니다.^-----^ > 이게 대략 3~5cm 정도 되는것 같은데.. ==> 24mm 정도 됩니다. > 이걸 20cm정도로 늘릴 수 있을까요? ==> 특별히 샘플 제작해야 해서, 많이 비싸고, 시간도 두달 정도 걸립니다. > 아니면, 확장을 할 수 있는 기구(?)나 막대기 같은게 있을까요? ==> 커플링(대략 싼것은 9,000~15,000원 정도)을 껴서, 5파이 봉을 껴서 쓰시면 되겠습니다. 5파이 100mm짜리 : http://www.devicemart.co.kr/1149214 커플링 : http://www.devicemart.co.kr/38236 (주문시 5파이 구멍 잘 보고 하세요.) > 끝에는 휠(SE-WST2)을 연결할겁니다... > > 방법이 있을까요? > 감사합니다.
9082 답변완료빌드는 되는데, 실행이 안되요 이현승 2015-02-17 1,282
WINAVR를 이요하여 AVR STUDIO에서 빌드 했으며, 현재 동봉해 주신 CD에서 실행되어 glcd화면에 그래픽이 뜨는 건 E:\KT-M128-LT트래이닝 킷트(교육용)\example_AVR_Lab_AVRStudio+WINAVR\Lab_10_Graphic_LCD\Lab_10_3 위의 것 하나 뿐이고, 아래의 예제들은 glcd화면상에 아무 것도 나타나지 않습니다. E:\KT-M128-LT트래이닝 킷트(교육용)\example_AVR_Lab_AVRStudio+WINAVR\Lab_10_Graphic_LCD\Lab_10_1 E:\KT-M128-LT트래이닝 킷트(교육용)\example_AVR_Lab_AVRStudio+WINAVR\Lab_10_Graphic_LCD\Lab_10_2 E:\KT-M128-LT트래이닝 킷트(교육용)\example_AVRStudio+WINAVR\ex_sense+adc+GLCD
관리자 답변 관리자 · 2015-02-18
안녕하세요? 고객님, 지난번 질문에서 동작을 확인하고 소스를 다시 압축하여 올려드린겁니다. 따라서, 바로전 질문에 저희가 답변에 동봉해드린 소스를 받아서 해보셔도 되지 않는다면 하드웨어 문제일수도 있습니다. 하지만 한가지는된다고 하셨으니, 하드웨어 문제는 아니실것같네요. 예제들은 일일이 모두 확인하여 올려드린것이라 거의 문제는 없습니다. 본사로 휴가가 끝난후 방문하시거나 택배로 장비 점검이 가능합니다. 일단 그 동봉해드린 소스로 해보세요. 확실히 잘 되는 소스입니다. 감사합니다. > > > WINAVR를 이요하여 AVR STUDIO에서 빌드 했으며, > 현재 동봉해 주신 CD에서 실행되어 glcd화면에 그래픽이 뜨는 건 > E:\KT-M128-LT트래이닝 킷트(교육용)\example_AVR_Lab_AVRStudio+WINAVR\Lab_10_Graphic_LCD\Lab_10_3 > 위의 것 하나 뿐이고, > > 아래의 예제들은 glcd화면상에 아무 것도 나타나지 않습니다. > E:\KT-M128-LT트래이닝 킷트(교육용)\example_AVR_Lab_AVRStudio+WINAVR\Lab_10_Graphic_LCD\Lab_10_1 > > E:\KT-M128-LT트래이닝 킷트(교육용)\example_AVR_Lab_AVRStudio+WINAVR\Lab_10_Graphic_LCD\Lab_10_2 > > E:\KT-M128-LT트래이닝 킷트(교육용)\example_AVRStudio+WINAVR\ex_sense+adc+GLCD >
9081 답변완료아두이노(arduion)로 스텝모터 구동보도 (AM-CS2P) 동작이 안됨니다. 문제가 무엇인지 알려주시면 감사하겠습니다 박종화 2015-02-17 1,439
/* * MotorKnob * * A stepper motor follows the turns of a potentiometer * (or other sensor) on analog input 0. * * http://www.arduino.cc/en/Reference/Stepper * This example code is in the public domain. */ #include <Stepper.h> // change this to the number of steps on your motor #define STEPS 100 // create an instance of the stepper class, specifying // the number of steps of the motor and the pins it's // attached to Stepper stepper(STEPS, 8, 9, 10, 11); // the previous reading from the analog input int previous = 0; void setup() { // set the speed of the motor to 30 RPMs stepper.setSpeed(30); } void loop() { // get the sensor value int val = analogRead(0); // move a number of steps equal to the change in the // sensor reading stepper.step(val - previous); // remember the previous value of the sensor previous = val; }
관리자 답변 관리자 · 2015-02-18
안녕하세요? 고객님, CS2P와 각 상의 연결이 맞는지 확인해 보세요. 즉, 라이브러리는 8,9,10,11번핀의 순서로 넣었는데, CS2P의 10핀 헤더핀과의 핀연결은 10핀헤더핀의 1, 3, 2, 4번핀과 아두이노의 8,9,10,11번핀과 순서에 맞게 연결해주면 됩니다. 모터의 A, /A, B, /B순서죠. 그리고, 2핀 전원핀에 12V 1A이상 넣어주시는것이 필요합니다. 그 후, 클럭 넣어주면서 cs2p의 중앙의 가변저항을 돌려 적절한 바이어스로 맞춰줘야합니다. 감사합니다. > > > /* > * MotorKnob > * > * A stepper motor follows the turns of a potentiometer > * (or other sensor) on analog input 0. > * > * http://www.arduino.cc/en/Reference/Stepper > * This example code is in the public domain. > */ > > #include <Stepper.h> > > // change this to the number of steps on your motor > #define STEPS 100 > > // create an instance of the stepper class, specifying > // the number of steps of the motor and the pins it's > // attached to > Stepper stepper(STEPS, 8, 9, 10, 11); > > // the previous reading from the analog input > int previous = 0; > > void setup() > { > // set the speed of the motor to 30 RPMs > stepper.setSpeed(30); > } > > void loop() > { > // get the sensor value > int val = analogRead(0); > > // move a number of steps equal to the change in the > // sensor reading > stepper.step(val - previous); > > // remember the previous value of the sensor > previous = val; > } >
9080 답변완료소스가 오동작 하는데, 정상작동하는 소스를 구할 수 있겠읍니까? 이현승 2015-02-16 1,429
안녕하세요? KT-M128-LT 사용자입니다. 질문 하나 소스가 오동작하는데, 정상작동하는 소스를 구할 수 있겠읍니까? 아래에 소스를 나열하겠읍니다. 아래의 소스는 AVR STUDIO의 소스입니다. 동봉된 CD의 디렉토리는 아래와 같습니다. E:\KT-M128-LT트래이닝 킷트(교육용)\example_AVRStudio+WINAVR\ex_sense+adc+GLCD 질문 둘 그리고 위의 보드에 초음파 센서를 장착해서 사용할 수 있읍니까? 있다면 어떻게 장착해서 사용해야 됩니까? //ICC-AVR application builder : 2008-01-16 오후 3:28:31 // Target : M128 // Crystal: 16.000Mhz #include <avr/io.h> #include <avr/interrupt.h> #include <stdio.h> #define LCD_Control (* (volatile unsigned char *) 0x8001) #define LCD_Data (* (volatile unsigned char *) 0x8000) #define RS_ON LCD_Control = (LCD_Controller|=0x01) #define RS_OFF LCD_Control = (LCD_Controller&=0xfe) #define RW_ON LCD_Control = (LCD_Controller|=0x02) #define RW_OFF LCD_Control = (LCD_Controller&=0xfd) #define EN_ON LCD_Control = (LCD_Controller|=0x04) #define EN_OFF LCD_Control = (LCD_Controller&=0xfb) #define CS2_ON LCD_Control = (LCD_Controller|=0x10) #define CS2_OFF LCD_Control = (LCD_Controller&=0xef) #define CS1_ON LCD_Control= (LCD_Controller|=0x08) #define CS1_OFF LCD_Control = (LCD_Controller&=0xf7) #define RESET_ON LCD_Control= (LCD_Controller|=0x20) #define RESET_OFF LCD_Control= (LCD_Controller&=0xdf) #define CS_ALL LCD_Control= (LCD_Controller|=0x18) #define ON 1 #define OFF 0 #define delaytime 2 #define delaytime1 5 /* ------------------------------------------------------- */ /* 8x16 Dot English(ASCII) Character Font */ /* ------------------------------------------------------- */ const unsigned char E_font[128][16] = { /* 8x16 ASCII character font */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x00 */ {0xF8,0x04,0x14,0x04,0x04,0x14,0x04,0xF8,0x07,0x08,0x09,0x0B,0x0B,0x09,0x08,0x07}, /* 0x01 */ {0xF8,0xFC,0x6C,0x7C,0x7C,0x6C,0xFC,0xF8,0x07,0x0F,0x0F,0x0C,0x0C,0x0F,0x0F,0x07}, /* 0x02 */ {0x00,0xF0,0xF8,0xF8,0xF0,0xF8,0xF8,0xF0,0x00,0x00,0x01,0x03,0x07,0x03,0x01,0x00}, /* 0x03 */ {0x00,0x40,0xE0,0xF0,0xF8,0xF0,0xE0,0x40,0x00,0x00,0x00,0x01,0x03,0x01,0x00,0x00}, /* 0x04 */ {0xE0,0xE0,0xF8,0x1C,0x1C,0xF8,0xE0,0xE0,0x00,0x00,0x04,0x07,0x07,0x04,0x00,0x00}, /* 0x05 */ {0x60,0xF0,0xF8,0xFC,0xFC,0xF8,0xF0,0x60,0x00,0x00,0x04,0x07,0x07,0x04,0x00,0x00}, /* 0x06 */ {0x00,0x00,0x60,0xF0,0xF0,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x07 */ {0x00,0xFF,0x1F,0x0F,0x0F,0x0F,0x1F,0xFF,0x00,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFF}, /* 0x08 */ {0x00,0x00,0xE0,0x10,0x10,0x10,0xE0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00}, /* 0x09 */ {0x00,0xFF,0x1F,0xEF,0xEF,0xEF,0x1F,0xFF,0x00,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFF}, /* 0x0A */ {0x00,0x00,0x90,0x48,0x7C,0x48,0x90,0x00,0x00,0x03,0x04,0x08,0x08,0x08,0x04,0x03}, /* 0x0B */ {0x00,0x30,0x48,0x84,0x84,0x84,0x48,0x30,0x00,0x02,0x02,0x02,0x0F,0x02,0x02,0x02}, /* 0x0C */ {0x00,0x00,0x00,0xFC,0x04,0x08,0x70,0x00,0x00,0x06,0x0F,0x07,0x00,0x00,0x00,0x00}, /* 0x0D */ {0x00,0x00,0x00,0xFC,0x14,0x14,0x14,0xFC,0x00,0x0C,0x1E,0x0F,0x00,0x06,0x0F,0x07}, /* 0x0E */ {0x50,0x50,0xE0,0xBC,0xBC,0xE0,0x50,0x50,0x01,0x01,0x00,0x07,0x07,0x00,0x01,0x01}, /* 0x0F */ {0x00,0x00,0xFC,0xF8,0xF0,0xE0,0x40,0x00,0x00,0x00,0x07,0x03,0x01,0x00,0x00,0x00}, /* 0x10 */ {0x00,0x00,0x40,0xE0,0xF0,0xF8,0xFC,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x00}, /* 0x11 */ {0x00,0x10,0x18,0xFC,0xFC,0x18,0x10,0x00,0x00,0x01,0x03,0x07,0x07,0x03,0x01,0x00}, /* 0x12 */ {0x00,0x00,0xFC,0xFC,0x00,0x00,0xFC,0xFC,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04}, /* 0x13 */ {0x38,0x7C,0x44,0xFC,0xFC,0x04,0xFC,0xFC,0x00,0x00,0x00,0x07,0x07,0x00,0x07,0x07}, /* 0x14 */ {0x00,0xC4,0xEE,0x3A,0x12,0x32,0xE6,0xC4,0x00,0x08,0x19,0x13,0x12,0x17,0x1D,0x08}, /* 0x15 */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x00}, /* 0x16 */ {0x00,0x10,0x18,0xFC,0xFC,0x18,0x10,0x00,0x08,0x09,0x0B,0x0F,0x0F,0x0B,0x09,0x08}, /* 0x17 */ {0x00,0x10,0x18,0xFC,0xFC,0x18,0x10,0x00,0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00}, /* 0x18 */ {0x00,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x07,0x03,0x01,0x00}, /* 0x19 */ {0x00,0x40,0x40,0x40,0x50,0xF0,0xE0,0x40,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00}, /* 0x1A */ {0x00,0x40,0xE0,0xF0,0x50,0x40,0x40,0x40,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00}, /* 0x1B */ {0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x02,0x02,0x02,0x02}, /* 0x1C */ {0x40,0xE0,0x50,0x40,0x40,0x50,0xE0,0x40,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00}, /* 0x1D */ {0x00,0x00,0x00,0xC0,0xF0,0xC0,0x00,0x00,0x00,0x04,0x07,0x07,0x07,0x07,0x07,0x04}, /* 0x1E */ {0x00,0x10,0x70,0xF0,0xF0,0xF0,0x70,0x10,0x00,0x00,0x00,0x01,0x07,0x01,0x00,0x00}, /* 0x1F */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* space */ {0x00,0x00,0x38,0xFC,0xFC,0x38,0x00,0x00,0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00}, /* ! */ {0x00,0x0E,0x1E,0x00,0x00,0x1E,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* */ {0x20,0xF8,0xF8,0x20,0xF8,0xF8,0x20,0x00,0x02,0x0F,0x0F,0x02,0x0F,0x0F,0x02,0x00}, /* # */ {0x38,0x7C,0x44,0x47,0x47,0xCC,0x98,0x00,0x06,0x0C,0x08,0x38,0x38,0x0F,0x07,0x00}, /* $ */ {0x30,0x30,0x00,0x80,0xC0,0x60,0x30,0x00,0x0C,0x06,0x03,0x01,0x00,0x0C,0x0C,0x00}, /* % */ {0x80,0xD8,0x7C,0xE4,0xBC,0xD8,0x40,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00}, /* & */ {0x00,0x10,0x1E,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ' */ {0x00,0x00,0xF0,0xF8,0x0C,0x04,0x00,0x00,0x00,0x00,0x03,0x07,0x0C,0x08,0x00,0x00}, /* ( */ {0x00,0x00,0x04,0x0C,0xF8,0xF0,0x00,0x00,0x00,0x00,0x08,0x0C,0x07,0x03,0x00,0x00}, /* ) */ {0x80,0xA0,0xE0,0xC0,0xC0,0xE0,0xA0,0x80,0x00,0x02,0x03,0x01,0x01,0x03,0x02,0x00}, /* * */ {0x00,0x80,0x80,0xE0,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00}, /* + */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x1E,0x0E,0x00,0x00,0x00}, /* , */ {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* - */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00}, /* . */ {0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x00,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00}, /* / */ {0xF0,0xF8,0x0C,0xC4,0x0C,0xF8,0xF0,0x00,0x03,0x07,0x0C,0x08,0x0C,0x07,0x03,0x00}, /* 0 */ {0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00}, /* 1 */ {0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00,0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00}, /* 2 */ {0x08,0x0C,0x44,0x44,0x44,0xFC,0xB8,0x00,0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00}, /* 3 */ {0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00}, /* 4 */ {0x7C,0x7C,0x44,0x44,0x44,0xC4,0x84,0x00,0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00}, /* 5 */ {0xF0,0xF8,0x4C,0x44,0x44,0xC0,0x80,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00}, /* 6 */ {0x0C,0x0C,0x04,0x84,0xC4,0x7C,0x3C,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00}, /* 7 */ {0xB8,0xFC,0x44,0x44,0x44,0xFC,0xB8,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00}, /* 8 */ {0x38,0x7C,0x44,0x44,0x44,0xFC,0xF8,0x00,0x00,0x08,0x08,0x08,0x0C,0x07,0x03,0x00}, /* 9 */ {0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00}, /* : */ {0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x08,0x0E,0x06,0x00,0x00,0x00}, /* ; */ {0x00,0x80,0xC0,0x60,0x30,0x18,0x08,0x00,0x00,0x00,0x01,0x03,0x06,0x0C,0x08,0x00}, /* < */ {0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00}, /* = */ {0x00,0x08,0x18,0x30,0x60,0xC0,0x80,0x00,0x00,0x08,0x0C,0x06,0x03,0x01,0x00,0x00}, /* > */ {0x18,0x1C,0x04,0xC4,0xE4,0x3C,0x18,0x00,0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00}, /* ? */ {0xF0,0xF8,0x08,0xC8,0xC8,0xF8,0xF0,0x00,0x07,0x0F,0x08,0x0B,0x0B,0x0B,0x01,0x00}, /* @ */ {0xE0,0xF0,0x98,0x8C,0x98,0xF0,0xE0,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00}, /* A */ {0x04,0xFC,0xFC,0x44,0x44,0xFC,0xB8,0x00,0x08,0x0F,0x0F,0x08,0x08,0x0F,0x07,0x00}, /* B */ {0xF0,0xF8,0x0C,0x04,0x04,0x0C,0x18,0x00,0x03,0x07,0x0C,0x08,0x08,0x0C,0x06,0x00}, /* C */ {0x04,0xFC,0xFC,0x04,0x0C,0xF8,0xF0,0x00,0x08,0x0F,0x0F,0x08,0x0C,0x07,0x03,0x00}, /* D */ {0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00,0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00}, /* E */ {0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00}, /* F */ {0xF0,0xF8,0x0C,0x84,0x84,0x8C,0x98,0x00,0x03,0x07,0x0C,0x08,0x08,0x07,0x0F,0x00}, /* G */ {0xFC,0xFC,0x40,0x40,0x40,0xFC,0xFC,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00}, /* H */ {0x00,0x00,0x04,0xFC,0xFC,0x04,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00}, /* I */ {0x00,0x00,0x00,0x04,0xFC,0xFC,0x04,0x00,0x07,0x0F,0x08,0x08,0x0F,0x07,0x00,0x00}, /* J */ {0x04,0xFC,0xFC,0xC0,0xE0,0x3C,0x1C,0x00,0x08,0x0F,0x0F,0x00,0x01,0x0F,0x0E,0x00}, /* K */ {0x04,0xFC,0xFC,0x04,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00}, /* L */ {0xFC,0xFC,0x38,0x70,0x38,0xFC,0xFC,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00}, /* M */ {0xFC,0xFC,0x38,0x70,0xE0,0xFC,0xFC,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00}, /* N */ {0xF8,0xFC,0x04,0x04,0x04,0xFC,0xF8,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00}, /* O */ {0x04,0xFC,0xFC,0x44,0x44,0x7C,0x38,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00}, /* P */ {0xF8,0xFC,0x04,0x04,0x04,0xFC,0xF8,0x00,0x07,0x0F,0x08,0x0E,0x3C,0x3F,0x27,0x00}, /* Q */ {0x04,0xFC,0xFC,0x44,0xC4,0xFC,0x38,0x00,0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00}, /* R */ {0x18,0x3C,0x64,0x44,0xC4,0x9C,0x18,0x00,0x06,0x0E,0x08,0x08,0x08,0x0F,0x07,0x00}, /* S */ {0x00,0x1C,0x0C,0xFC,0xFC,0x0C,0x1C,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00}, /* T */ {0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00}, /* U */ {0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,0x01,0x03,0x06,0x0C,0x06,0x03,0x01,0x00}, /* V */ {0xFC,0xFC,0x00,0xC0,0x00,0xFC,0xFC,0x00,0x07,0x0F,0x0E,0x03,0x0E,0x0F,0x07,0x00}, /* W */ {0x0C,0x3C,0xF0,0xE0,0xF0,0x3C,0x0C,0x00,0x0C,0x0F,0x03,0x01,0x03,0x0F,0x0C,0x00}, /* X */ {0x00,0x3C,0x7C,0xC0,0xC0,0x7C,0x3C,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00}, /* Y */ {0x1C,0x0C,0x84,0xC4,0x64,0x3C,0x1C,0x00,0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0E,0x00}, /* Z */ {0x00,0x00,0xFC,0xFC,0x04,0x04,0x00,0x00,0x00,0x00,0x0F,0x0F,0x08,0x08,0x00,0x00}, /* [ */ {0x38,0x70,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0E,0x00}, /* \ */ {0x00,0x00,0x04,0x04,0xFC,0xFC,0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0x0F,0x00,0x00}, /* ] */ {0x08,0x0C,0x06,0x03,0x06,0x0C,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ^ */ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20}, /* _ */ {0x00,0x00,0x03,0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ` */ {0x00,0xA0,0xA0,0xA0,0xE0,0xC0,0x00,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00}, /* a */ {0x04,0xFC,0xFC,0x20,0x60,0xC0,0x80,0x00,0x00,0x0F,0x0F,0x08,0x08,0x0F,0x07,0x00}, /* b */ {0xC0,0xE0,0x20,0x20,0x20,0x60,0x40,0x00,0x07,0x0F,0x08,0x08,0x08,0x0C,0x04,0x00}, /* c */ {0x80,0xC0,0x60,0x24,0xFC,0xFC,0x00,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00}, /* d */ {0xC0,0xE0,0xA0,0xA0,0xA0,0xE0,0xC0,0x00,0x07,0x0F,0x08,0x08,0x08,0x0C,0x04,0x00}, /* e */ {0x40,0xF8,0xFC,0x44,0x0C,0x18,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00}, /* f */ {0xC0,0xE0,0x20,0x20,0xC0,0xE0,0x20,0x00,0x27,0x6F,0x48,0x48,0x7F,0x3F,0x00,0x00}, /* g */ {0x04,0xFC,0xFC,0x40,0x20,0xE0,0xC0,0x00,0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00}, /* h */ {0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00}, /* i */ {0x00,0x00,0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x30,0x70,0x40,0x40,0x7F,0x3F,0x00}, /* j */ {0x04,0xFC,0xFC,0x80,0xC0,0x60,0x20,0x00,0x08,0x0F,0x0F,0x01,0x03,0x0E,0x0C,0x00}, /* k */ {0x00,0x00,0x04,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00}, /* l */ {0xE0,0xE0,0x60,0xC0,0x60,0xE0,0xC0,0x00,0x0F,0x0F,0x00,0x07,0x00,0x0F,0x0F,0x00}, /* m */ {0x20,0xE0,0xC0,0x20,0x20,0xE0,0xC0,0x00,0x00,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00}, /* n */ {0xC0,0xE0,0x20,0x20,0x20,0xE0,0xC0,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00}, /* o */ {0x20,0xE0,0xC0,0x20,0x20,0xE0,0xC0,0x00,0x40,0x7F,0x7F,0x48,0x08,0x0F,0x07,0x00}, /* p */ {0xC0,0xE0,0x20,0x20,0xC0,0xE0,0x20,0x00,0x07,0x0F,0x08,0x48,0x7F,0x7F,0x40,0x00}, /* q */ {0x20,0xE0,0xC0,0x60,0x20,0xE0,0xC0,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00}, /* r */ {0x40,0xE0,0xA0,0x20,0x20,0x60,0x40,0x00,0x04,0x0C,0x09,0x09,0x0B,0x0E,0x04,0x00}, /* s */ {0x20,0x20,0xF8,0xFC,0x20,0x20,0x00,0x00,0x00,0x00,0x07,0x0F,0x08,0x0C,0x04,0x00}, /* t */ {0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00}, /* u */ {0x00,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00,0x00,0x03,0x07,0x0C,0x0C,0x07,0x03,0x00}, /* v */ {0xE0,0xE0,0x00,0x80,0x00,0xE0,0xE0,0x00,0x07,0x0F,0x0C,0x07,0x0C,0x0F,0x07,0x00}, /* w */ {0x20,0x60,0xC0,0x80,0xC0,0x60,0x20,0x00,0x08,0x0C,0x07,0x03,0x07,0x0C,0x08,0x00}, /* x */ {0xE0,0xE0,0x00,0x00,0x00,0xE0,0xE0,0x00,0x47,0x4F,0x48,0x48,0x68,0x3F,0x1F,0x00}, /* y */ {0x60,0x60,0x20,0xA0,0xE0,0x60,0x20,0x00,0x0C,0x0E,0x0B,0x09,0x08,0x0C,0x0C,0x00}, /* z */ {0x00,0x40,0x40,0xF8,0xBC,0x04,0x04,0x00,0x00,0x00,0x00,0x07,0x0F,0x08,0x08,0x00}, /* { */ {0x00,0x00,0x00,0xBC,0xBC,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00}, /* | */ {0x00,0x04,0x04,0xBC,0xF8,0x40,0x40,0x00,0x00,0x08,0x08,0x0F,0x07,0x00,0x00,0x00}, /* } */ {0x80,0xC0,0x40,0xC0,0x80,0xC0,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ~ */ {0x80,0xC0,0x60,0x30,0x60,0xC0,0x80,0x00,0x07,0x07,0x04,0x04,0x04,0x07,0x07,0x00} /* 0x7F */ }; char LCD_Controller; int XPosition=0, YPosition=0; volatile unsigned int value; int Putchar(char data) { Write_English(data); return data; } 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 uart1_init(void) { UCSR1B = 0x00; //disable while setting baud rate UCSR1A = 0x00; UCSR1C = 0x06; UBRR1L = 0x67; //set baud rate lo UBRR1H = 0x00; //set baud rate hi UCSR1B = 0x98; } //ADC initialize // Conversion time: 104uS void adc_init(void) { ADCSRA = 0x00; //disable adc ADMUX = 0x00; //select adc input 0 ACSR = 0x80; ADCSRA = 0x87; } /*void adc_init(void) { ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); }*/ //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(); adc_init(); uart1_init(); fdevopen(Putchar,0); MCUCR = 0x00; //원래는 0x80 EICRA = 0x00; //extended ext ints EICRB = 0x00; //extended ext ints EIMSK = 0x00; TIMSK = 0x00; //timer interrupt sources ETIMSK = 0x00; //extended timer interrupt sources sei(); //re-enable interrupts //all peripherals are now initialized } void delay_us(unsigned int dt) { unsigned int dc; for(dc=0;dc<dt;dc++) { asm volatile("nop"::); asm volatile("nop"::); asm volatile("nop"::); } } void delay(unsigned int dt) { unsigned int dc; for(dc=0;dc<dt;dc++) { delay_us(3); } } void delay_ms(unsigned int dt) { unsigned int dc; for(dc=0;dc<dt;dc++) { delay_us(1100); } } void Lcd_XY(int x_, int y_){ XPosition = x_; YPosition = y_; } void Write_Control(char CS, char cmd){ delay(delaytime); EN_OFF; delay(delaytime); RS_OFF; delay(delaytime); RW_OFF; delay(delaytime); LCD_Control = CS; delay(delaytime); EN_ON; delay(delaytime); LCD_Data = cmd; delay(delaytime); EN_OFF; delay(delaytime); } void Lcd_XY_S(int s, int x_, int y_){ Lcd_XY(x_,y_); if(s==0) Write_Control(CS_ALL, 0xb8 + x_*2); else Write_Control(CS_ALL, 0xb8 + x_*2 + 1); if(YPosition <8) Write_Control(CS2_OFF, 0x40 +y_*8); else Write_Control(CS1_OFF, 0x40 +(y_-8)*8); } void Write_Data(char CS, char data){ delay(delaytime); EN_OFF; delay(delaytime); RS_ON; delay(delaytime); RW_OFF; delay(delaytime); LCD_Control = CS; delay(delaytime); EN_ON; delay(delaytime); LCD_Data = data; delay(delaytime); EN_OFF; delay(delaytime); } void Lcd_Clear(){ int i, j, x, y; LCD_Control = 0x00; Write_Control(CS_ALL, 0x3f); Write_Control(CS_ALL, 0xc0); x=0xb8; y=0x40; for(i=0; i<=7; i++){ Write_Control(CS_ALL, x); Write_Control(CS_ALL, y); for(j=0; j<64; j++){ Write_Data(CS_ALL, 0x00); } x++; } } void Write_English(unsigned char code){ int x_, y_, i, sign; x_=XPosition; y_=YPosition; Lcd_XY_S(0,x_,y_); if(YPosition < 8) sign = CS2_OFF; else sign = CS1_OFF; for(i=0;i<8;i++) Write_Data(sign, E_font[code][i]); Lcd_XY_S(1,x_,y_); if(YPosition < 8) sign = CS2_OFF; else sign = CS1_OFF; for(i=8; i<16; i++) Write_Data(sign, E_font[code][i]); YPosition++; if(YPosition==16){ YPosition = 0; XPosition++; } if(XPosition>3){ XPosition = 0; Lcd_Clear(); } } void Lcd_init(){ RESET_OFF; RESET_ON; CS_ALL; Write_Control(CS_ALL, 0x3f); Write_Control(CS_ALL, 0xc0); Write_Control(CS_ALL, 0xb8); Write_Control(CS_ALL, 0x40); } void Adc_Data( unsigned char Admux ) { unsigned int tempL, tempH; delay(15); ADCSRA &=0x1f; ADMUX = Admux; ADCSRA |= 0xC0; delay(5); delay_ms(1); tempL = ADCL; tempH = ADCH; value = tempL + tempH*256; if((value<10) & (value>0) ) { printf(": %d", value); } else if(value<100) { printf(": %d", value); } else if(value<1000) { printf(": %d", value); } else { printf(": %d", value); } } int main(void){ unsigned char Va_R=0x40, Ir_S=0x41, Te_S=0x42, Cd_S=0x43; unsigned int sensor_val; init_devices(); Lcd_init(); Lcd_Clear(); Lcd_XY(0,0); printf("Var_Reg"); Lcd_XY(1,0); printf("IR_Sens"); Lcd_XY(2,0); printf("Temp_Se"); Lcd_XY(3,0); printf("CDS_Sen"); //Lcd_XY(4,0); //내가 한거 while(1){ Lcd_XY(0,9); Adc_Data(0x40); delay(2000); Lcd_XY(1,9); Adc_Data(0x41); delay(2000); Lcd_XY(2,9); Adc_Data(0x42); delay(2000); Lcd_XY(3,9); Adc_Data(0x43); delay(2000); } return 0; }
관리자 답변 관리자 · 2015-02-17
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 소프트웨어적 문제 : 빌드가 되지 않으실 경우 다음을 점검해 보세요. AVR Studio 버전이 4.17 또는 그 이상일 경우 공식적으로 WinAVR 과의 연동을 지원하지 않기 때문에 추가로 연동을 하시거나 툴체인을 설치하셔야 합니다. 툴체인을 설치하는 것을 선택하실 경우, 다음 링크에서 툴체인을 내려받아 설치해주세요. http://www.atmel.com/Images/avr-toolchain-installer-3.3.0.710-win32.win32.x86.exe 그 뒤 AVR Studio 를 종료하고 다시 실행하실 경우 정상적으로 빌드가 됨을 알 수 있습니다. (F7 단축키가 설정이 꼬여 사라지는 경우도 있으나, 그 때에는 Build 메뉴의 Build All 을 실행해주시면 됩니다) 그렇지 않고 WinAVR 을 사용하실 경우는 다음과 같이 설정해주시면 됩니다. Project -> Configuration Options -> Custom Options 의 External Tools 옵션에서 Use AVR Toolchain 을 체크 해제 후 다음을 추가로 설정해주시면 됩니다. avr-gcc : 옆의 ... 버튼을 누르고 다음을 찾아갑니다. C:\WinAVR-20100110\bin\avr-gcc.exe make : 옆의 ... 버튼을 누르고 다음을 찾아갑니다. C:\WinAVR-20100110\utils\bin\make.exe ※Windows 특성상 파일/폴더명 대소문자를 구분하지 않습니다. ※WinAVR 버전이 낮은 경우, 또는 기본 디렉터리가 아닌 다른 디렉터리에 설치한 경우 설치 경로(C:\WinAVR-20100110)는 언제든지 변경될 수 있습니다. 또한 Project -> Configuration Options -> General 에서 Use External Makefile 을 체크 해제 해주세요. 하드웨어적 문제 : KT-M128보드의 ADC0 - ADC3 스위치가 On으로 되어있는지 확인해주세요. 그렇지 않을 경우 값이 꼬입니다. 또한 GLCD 를 사용하실 경우 LCD SEL 스위치 (7 Segment 바로 옆에 있습니다) 가 밑으로 내려가 (GLCD로 선택) 있는지 확인해주세요. 해당 부분을 점검하신 후 Reset 스위치를 동작시켜 하드웨어 리셋을 해 주시면 됩니다. 초음파 센서 관련 문제 : 초음파 센서는 PORTF 또는 PORTB 를 사용하여 제어할 수 있습니다. PORTB 를 사용하실 경우 스위치 입력시 잘못된 값이 들어갈 수 있습니다. 해당하는 두 포트는 2 * 5 박스 커넥터로 연결되어 있으니 이 부분을 사용하여 제어하시면 됩니다. 소스 코드를 첨부해 드립니다. 감사합니다. > > > 안녕하세요? > KT-M128-LT 사용자입니다. > > 질문 하나 > > 소스가 오동작하는데, 정상작동하는 소스를 구할 수 있겠읍니까? > 아래에 소스를 나열하겠읍니다. > 아래의 소스는 AVR STUDIO의 소스입니다. > 동봉된 CD의 디렉토리는 아래와 같습니다. > E:\KT-M128-LT트래이닝 킷트(교육용)\example_AVRStudio+WINAVR\ex_sense+adc+GLCD > > 질문 둘 > > 그리고 위의 보드에 초음파 센서를 장착해서 사용할 수 있읍니까? > 있다면 어떻게 장착해서 사용해야 됩니까? > > > > //ICC-AVR application builder : 2008-01-16 오후 3:28:31 > // Target : M128 > // Crystal: 16.000Mhz > > #include <avr/io.h> > #include <avr/interrupt.h> > #include <stdio.h> > > #define LCD_Control (* (volatile unsigned char *) 0x8001) > #define LCD_Data (* (volatile unsigned char *) 0x8000) > > #define RS_ON LCD_Control = (LCD_Controller|=0x01) > #define RS_OFF LCD_Control = (LCD_Controller&=0xfe) > #define RW_ON LCD_Control = (LCD_Controller|=0x02) > #define RW_OFF LCD_Control = (LCD_Controller&=0xfd) > #define EN_ON LCD_Control = (LCD_Controller|=0x04) > #define EN_OFF LCD_Control = (LCD_Controller&=0xfb) > #define CS2_ON LCD_Control = (LCD_Controller|=0x10) > #define CS2_OFF LCD_Control = (LCD_Controller&=0xef) > #define CS1_ON LCD_Control= (LCD_Controller|=0x08) > #define CS1_OFF LCD_Control = (LCD_Controller&=0xf7) > #define RESET_ON LCD_Control= (LCD_Controller|=0x20) > #define RESET_OFF LCD_Control= (LCD_Controller&=0xdf) > #define CS_ALL LCD_Control= (LCD_Controller|=0x18) > #define ON 1 > #define OFF 0 > #define delaytime 2 > #define delaytime1 5 > > > /* ------------------------------------------------------- */ > /* 8x16 Dot English(ASCII) Character Font */ > /* ------------------------------------------------------- */ > const unsigned char E_font[128][16] = { /* 8x16 ASCII character font */ > {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x00 */ > {0xF8,0x04,0x14,0x04,0x04,0x14,0x04,0xF8,0x07,0x08,0x09,0x0B,0x0B,0x09,0x08,0x07}, /* 0x01 */ > {0xF8,0xFC,0x6C,0x7C,0x7C,0x6C,0xFC,0xF8,0x07,0x0F,0x0F,0x0C,0x0C,0x0F,0x0F,0x07}, /* 0x02 */ > {0x00,0xF0,0xF8,0xF8,0xF0,0xF8,0xF8,0xF0,0x00,0x00,0x01,0x03,0x07,0x03,0x01,0x00}, /* 0x03 */ > {0x00,0x40,0xE0,0xF0,0xF8,0xF0,0xE0,0x40,0x00,0x00,0x00,0x01,0x03,0x01,0x00,0x00}, /* 0x04 */ > {0xE0,0xE0,0xF8,0x1C,0x1C,0xF8,0xE0,0xE0,0x00,0x00,0x04,0x07,0x07,0x04,0x00,0x00}, /* 0x05 */ > {0x60,0xF0,0xF8,0xFC,0xFC,0xF8,0xF0,0x60,0x00,0x00,0x04,0x07,0x07,0x04,0x00,0x00}, /* 0x06 */ > {0x00,0x00,0x60,0xF0,0xF0,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x07 */ > {0x00,0xFF,0x1F,0x0F,0x0F,0x0F,0x1F,0xFF,0x00,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFF}, /* 0x08 */ > {0x00,0x00,0xE0,0x10,0x10,0x10,0xE0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00}, /* 0x09 */ > {0x00,0xFF,0x1F,0xEF,0xEF,0xEF,0x1F,0xFF,0x00,0xFF,0xFF,0xFE,0xFE,0xFE,0xFF,0xFF}, /* 0x0A */ > {0x00,0x00,0x90,0x48,0x7C,0x48,0x90,0x00,0x00,0x03,0x04,0x08,0x08,0x08,0x04,0x03}, /* 0x0B */ > {0x00,0x30,0x48,0x84,0x84,0x84,0x48,0x30,0x00,0x02,0x02,0x02,0x0F,0x02,0x02,0x02}, /* 0x0C */ > {0x00,0x00,0x00,0xFC,0x04,0x08,0x70,0x00,0x00,0x06,0x0F,0x07,0x00,0x00,0x00,0x00}, /* 0x0D */ > {0x00,0x00,0x00,0xFC,0x14,0x14,0x14,0xFC,0x00,0x0C,0x1E,0x0F,0x00,0x06,0x0F,0x07}, /* 0x0E */ > {0x50,0x50,0xE0,0xBC,0xBC,0xE0,0x50,0x50,0x01,0x01,0x00,0x07,0x07,0x00,0x01,0x01}, /* 0x0F */ > {0x00,0x00,0xFC,0xF8,0xF0,0xE0,0x40,0x00,0x00,0x00,0x07,0x03,0x01,0x00,0x00,0x00}, /* 0x10 */ > {0x00,0x00,0x40,0xE0,0xF0,0xF8,0xFC,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x00}, /* 0x11 */ > {0x00,0x10,0x18,0xFC,0xFC,0x18,0x10,0x00,0x00,0x01,0x03,0x07,0x07,0x03,0x01,0x00}, /* 0x12 */ > {0x00,0x00,0xFC,0xFC,0x00,0x00,0xFC,0xFC,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04}, /* 0x13 */ > {0x38,0x7C,0x44,0xFC,0xFC,0x04,0xFC,0xFC,0x00,0x00,0x00,0x07,0x07,0x00,0x07,0x07}, /* 0x14 */ > {0x00,0xC4,0xEE,0x3A,0x12,0x32,0xE6,0xC4,0x00,0x08,0x19,0x13,0x12,0x17,0x1D,0x08}, /* 0x15 */ > {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x00}, /* 0x16 */ > {0x00,0x10,0x18,0xFC,0xFC,0x18,0x10,0x00,0x08,0x09,0x0B,0x0F,0x0F,0x0B,0x09,0x08}, /* 0x17 */ > {0x00,0x10,0x18,0xFC,0xFC,0x18,0x10,0x00,0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00}, /* 0x18 */ > {0x00,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x07,0x03,0x01,0x00}, /* 0x19 */ > {0x00,0x40,0x40,0x40,0x50,0xF0,0xE0,0x40,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00}, /* 0x1A */ > {0x00,0x40,0xE0,0xF0,0x50,0x40,0x40,0x40,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00}, /* 0x1B */ > {0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x02,0x02,0x02,0x02}, /* 0x1C */ > {0x40,0xE0,0x50,0x40,0x40,0x50,0xE0,0x40,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00}, /* 0x1D */ > {0x00,0x00,0x00,0xC0,0xF0,0xC0,0x00,0x00,0x00,0x04,0x07,0x07,0x07,0x07,0x07,0x04}, /* 0x1E */ > {0x00,0x10,0x70,0xF0,0xF0,0xF0,0x70,0x10,0x00,0x00,0x00,0x01,0x07,0x01,0x00,0x00}, /* 0x1F */ > {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* space */ > {0x00,0x00,0x38,0xFC,0xFC,0x38,0x00,0x00,0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00}, /* ! */ > {0x00,0x0E,0x1E,0x00,0x00,0x1E,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* */ > {0x20,0xF8,0xF8,0x20,0xF8,0xF8,0x20,0x00,0x02,0x0F,0x0F,0x02,0x0F,0x0F,0x02,0x00}, /* # */ > {0x38,0x7C,0x44,0x47,0x47,0xCC,0x98,0x00,0x06,0x0C,0x08,0x38,0x38,0x0F,0x07,0x00}, /* $ */ > {0x30,0x30,0x00,0x80,0xC0,0x60,0x30,0x00,0x0C,0x06,0x03,0x01,0x00,0x0C,0x0C,0x00}, /* % */ > {0x80,0xD8,0x7C,0xE4,0xBC,0xD8,0x40,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00}, /* & */ > {0x00,0x10,0x1E,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ' */ > {0x00,0x00,0xF0,0xF8,0x0C,0x04,0x00,0x00,0x00,0x00,0x03,0x07,0x0C,0x08,0x00,0x00}, /* ( */ > {0x00,0x00,0x04,0x0C,0xF8,0xF0,0x00,0x00,0x00,0x00,0x08,0x0C,0x07,0x03,0x00,0x00}, /* ) */ > {0x80,0xA0,0xE0,0xC0,0xC0,0xE0,0xA0,0x80,0x00,0x02,0x03,0x01,0x01,0x03,0x02,0x00}, /* * */ > {0x00,0x80,0x80,0xE0,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00}, /* + */ > {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x1E,0x0E,0x00,0x00,0x00}, /* , */ > {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* - */ > {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00}, /* . */ > {0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x00,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00}, /* / */ > {0xF0,0xF8,0x0C,0xC4,0x0C,0xF8,0xF0,0x00,0x03,0x07,0x0C,0x08,0x0C,0x07,0x03,0x00}, /* 0 */ > {0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00}, /* 1 */ > {0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00,0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00}, /* 2 */ > {0x08,0x0C,0x44,0x44,0x44,0xFC,0xB8,0x00,0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00}, /* 3 */ > {0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00}, /* 4 */ > {0x7C,0x7C,0x44,0x44,0x44,0xC4,0x84,0x00,0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00}, /* 5 */ > {0xF0,0xF8,0x4C,0x44,0x44,0xC0,0x80,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00}, /* 6 */ > {0x0C,0x0C,0x04,0x84,0xC4,0x7C,0x3C,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00}, /* 7 */ > {0xB8,0xFC,0x44,0x44,0x44,0xFC,0xB8,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00}, /* 8 */ > {0x38,0x7C,0x44,0x44,0x44,0xFC,0xF8,0x00,0x00,0x08,0x08,0x08,0x0C,0x07,0x03,0x00}, /* 9 */ > {0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00}, /* : */ > {0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x08,0x0E,0x06,0x00,0x00,0x00}, /* ; */ > {0x00,0x80,0xC0,0x60,0x30,0x18,0x08,0x00,0x00,0x00,0x01,0x03,0x06,0x0C,0x08,0x00}, /* < */ > {0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00}, /* = */ > {0x00,0x08,0x18,0x30,0x60,0xC0,0x80,0x00,0x00,0x08,0x0C,0x06,0x03,0x01,0x00,0x00}, /* > */ > {0x18,0x1C,0x04,0xC4,0xE4,0x3C,0x18,0x00,0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00}, /* ? */ > {0xF0,0xF8,0x08,0xC8,0xC8,0xF8,0xF0,0x00,0x07,0x0F,0x08,0x0B,0x0B,0x0B,0x01,0x00}, /* @ */ > {0xE0,0xF0,0x98,0x8C,0x98,0xF0,0xE0,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00}, /* A */ > {0x04,0xFC,0xFC,0x44,0x44,0xFC,0xB8,0x00,0x08,0x0F,0x0F,0x08,0x08,0x0F,0x07,0x00}, /* B */ > {0xF0,0xF8,0x0C,0x04,0x04,0x0C,0x18,0x00,0x03,0x07,0x0C,0x08,0x08,0x0C,0x06,0x00}, /* C */ > {0x04,0xFC,0xFC,0x04,0x0C,0xF8,0xF0,0x00,0x08,0x0F,0x0F,0x08,0x0C,0x07,0x03,0x00}, /* D */ > {0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00,0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00}, /* E */ > {0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00}, /* F */ > {0xF0,0xF8,0x0C,0x84,0x84,0x8C,0x98,0x00,0x03,0x07,0x0C,0x08,0x08,0x07,0x0F,0x00}, /* G */ > {0xFC,0xFC,0x40,0x40,0x40,0xFC,0xFC,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00}, /* H */ > {0x00,0x00,0x04,0xFC,0xFC,0x04,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00}, /* I */ > {0x00,0x00,0x00,0x04,0xFC,0xFC,0x04,0x00,0x07,0x0F,0x08,0x08,0x0F,0x07,0x00,0x00}, /* J */ > {0x04,0xFC,0xFC,0xC0,0xE0,0x3C,0x1C,0x00,0x08,0x0F,0x0F,0x00,0x01,0x0F,0x0E,0x00}, /* K */ > {0x04,0xFC,0xFC,0x04,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00}, /* L */ > {0xFC,0xFC,0x38,0x70,0x38,0xFC,0xFC,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00}, /* M */ > {0xFC,0xFC,0x38,0x70,0xE0,0xFC,0xFC,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00}, /* N */ > {0xF8,0xFC,0x04,0x04,0x04,0xFC,0xF8,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00}, /* O */ > {0x04,0xFC,0xFC,0x44,0x44,0x7C,0x38,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00}, /* P */ > {0xF8,0xFC,0x04,0x04,0x04,0xFC,0xF8,0x00,0x07,0x0F,0x08,0x0E,0x3C,0x3F,0x27,0x00}, /* Q */ > {0x04,0xFC,0xFC,0x44,0xC4,0xFC,0x38,0x00,0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00}, /* R */ > {0x18,0x3C,0x64,0x44,0xC4,0x9C,0x18,0x00,0x06,0x0E,0x08,0x08,0x08,0x0F,0x07,0x00}, /* S */ > {0x00,0x1C,0x0C,0xFC,0xFC,0x0C,0x1C,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00}, /* T */ > {0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00}, /* U */ > {0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,0x01,0x03,0x06,0x0C,0x06,0x03,0x01,0x00}, /* V */ > {0xFC,0xFC,0x00,0xC0,0x00,0xFC,0xFC,0x00,0x07,0x0F,0x0E,0x03,0x0E,0x0F,0x07,0x00}, /* W */ > {0x0C,0x3C,0xF0,0xE0,0xF0,0x3C,0x0C,0x00,0x0C,0x0F,0x03,0x01,0x03,0x0F,0x0C,0x00}, /* X */ > {0x00,0x3C,0x7C,0xC0,0xC0,0x7C,0x3C,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00}, /* Y */ > {0x1C,0x0C,0x84,0xC4,0x64,0x3C,0x1C,0x00,0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0E,0x00}, /* Z */ > {0x00,0x00,0xFC,0xFC,0x04,0x04,0x00,0x00,0x00,0x00,0x0F,0x0F,0x08,0x08,0x00,0x00}, /* [ */ > {0x38,0x70,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0E,0x00}, /* \ */ > {0x00,0x00,0x04,0x04,0xFC,0xFC,0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0x0F,0x00,0x00}, /* ] */ > {0x08,0x0C,0x06,0x03,0x06,0x0C,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ^ */ > {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20}, /* _ */ > {0x00,0x00,0x03,0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ` */ > {0x00,0xA0,0xA0,0xA0,0xE0,0xC0,0x00,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00}, /* a */ > {0x04,0xFC,0xFC,0x20,0x60,0xC0,0x80,0x00,0x00,0x0F,0x0F,0x08,0x08,0x0F,0x07,0x00}, /* b */ > {0xC0,0xE0,0x20,0x20,0x20,0x60,0x40,0x00,0x07,0x0F,0x08,0x08,0x08,0x0C,0x04,0x00}, /* c */ > {0x80,0xC0,0x60,0x24,0xFC,0xFC,0x00,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00}, /* d */ > {0xC0,0xE0,0xA0,0xA0,0xA0,0xE0,0xC0,0x00,0x07,0x0F,0x08,0x08,0x08,0x0C,0x04,0x00}, /* e */ > {0x40,0xF8,0xFC,0x44,0x0C,0x18,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00}, /* f */ > {0xC0,0xE0,0x20,0x20,0xC0,0xE0,0x20,0x00,0x27,0x6F,0x48,0x48,0x7F,0x3F,0x00,0x00}, /* g */ > {0x04,0xFC,0xFC,0x40,0x20,0xE0,0xC0,0x00,0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00}, /* h */ > {0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00}, /* i */ > {0x00,0x00,0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x30,0x70,0x40,0x40,0x7F,0x3F,0x00}, /* j */ > {0x04,0xFC,0xFC,0x80,0xC0,0x60,0x20,0x00,0x08,0x0F,0x0F,0x01,0x03,0x0E,0x0C,0x00}, /* k */ > {0x00,0x00,0x04,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00}, /* l */ > {0xE0,0xE0,0x60,0xC0,0x60,0xE0,0xC0,0x00,0x0F,0x0F,0x00,0x07,0x00,0x0F,0x0F,0x00}, /* m */ > {0x20,0xE0,0xC0,0x20,0x20,0xE0,0xC0,0x00,0x00,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00}, /* n */ > {0xC0,0xE0,0x20,0x20,0x20,0xE0,0xC0,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00}, /* o */ > {0x20,0xE0,0xC0,0x20,0x20,0xE0,0xC0,0x00,0x40,0x7F,0x7F,0x48,0x08,0x0F,0x07,0x00}, /* p */ > {0xC0,0xE0,0x20,0x20,0xC0,0xE0,0x20,0x00,0x07,0x0F,0x08,0x48,0x7F,0x7F,0x40,0x00}, /* q */ > {0x20,0xE0,0xC0,0x60,0x20,0xE0,0xC0,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00}, /* r */ > {0x40,0xE0,0xA0,0x20,0x20,0x60,0x40,0x00,0x04,0x0C,0x09,0x09,0x0B,0x0E,0x04,0x00}, /* s */ > {0x20,0x20,0xF8,0xFC,0x20,0x20,0x00,0x00,0x00,0x00,0x07,0x0F,0x08,0x0C,0x04,0x00}, /* t */ > {0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00}, /* u */ > {0x00,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00,0x00,0x03,0x07,0x0C,0x0C,0x07,0x03,0x00}, /* v */ > {0xE0,0xE0,0x00,0x80,0x00,0xE0,0xE0,0x00,0x07,0x0F,0x0C,0x07,0x0C,0x0F,0x07,0x00}, /* w */ > {0x20,0x60,0xC0,0x80,0xC0,0x60,0x20,0x00,0x08,0x0C,0x07,0x03,0x07,0x0C,0x08,0x00}, /* x */ > {0xE0,0xE0,0x00,0x00,0x00,0xE0,0xE0,0x00,0x47,0x4F,0x48,0x48,0x68,0x3F,0x1F,0x00}, /* y */ > {0x60,0x60,0x20,0xA0,0xE0,0x60,0x20,0x00,0x0C,0x0E,0x0B,0x09,0x08,0x0C,0x0C,0x00}, /* z */ > {0x00,0x40,0x40,0xF8,0xBC,0x04,0x04,0x00,0x00,0x00,0x00,0x07,0x0F,0x08,0x08,0x00}, /* { */ > {0x00,0x00,0x00,0xBC,0xBC,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00}, /* | */ > {0x00,0x04,0x04,0xBC,0xF8,0x40,0x40,0x00,0x00,0x08,0x08,0x0F,0x07,0x00,0x00,0x00}, /* } */ > {0x80,0xC0,0x40,0xC0,0x80,0xC0,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ~ */ > {0x80,0xC0,0x60,0x30,0x60,0xC0,0x80,0x00,0x07,0x07,0x04,0x04,0x04,0x07,0x07,0x00} /* 0x7F */ > }; > > char LCD_Controller; > int XPosition=0, YPosition=0; > volatile unsigned int value; > > int Putchar(char data) > { > Write_English(data); > return data; > } > > 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 uart1_init(void) > { > UCSR1B = 0x00; //disable while setting baud rate > UCSR1A = 0x00; > UCSR1C = 0x06; > UBRR1L = 0x67; //set baud rate lo > UBRR1H = 0x00; //set baud rate hi > UCSR1B = 0x98; > } > //ADC initialize > // Conversion time: 104uS > > void adc_init(void) > { > ADCSRA = 0x00; //disable adc > ADMUX = 0x00; //select adc input 0 > ACSR = 0x80; > ADCSRA = 0x87; > } > > /*void adc_init(void) > { > ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); > }*/ > //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(); > adc_init(); > uart1_init(); > fdevopen(Putchar,0); > > MCUCR = 0x00; //원래는 0x80 > EICRA = 0x00; //extended ext ints > EICRB = 0x00; //extended ext ints > EIMSK = 0x00; > TIMSK = 0x00; //timer interrupt sources > ETIMSK = 0x00; //extended timer interrupt sources > sei(); //re-enable interrupts > //all peripherals are now initialized > } > > void delay_us(unsigned int dt) > { > unsigned int dc; > for(dc=0;dc<dt;dc++) > { > asm volatile("nop"::); > asm volatile("nop"::); > asm volatile("nop"::); > } > } > > void delay(unsigned int dt) > { > unsigned int dc; > for(dc=0;dc<dt;dc++) > { > delay_us(3); > } > } > void delay_ms(unsigned int dt) > { > unsigned int dc; > for(dc=0;dc<dt;dc++) > { > delay_us(1100); > } > } > > void Lcd_XY(int x_, int y_){ > XPosition = x_; > YPosition = y_; > } > > > void Write_Control(char CS, char cmd){ > delay(delaytime); > EN_OFF; > delay(delaytime); > RS_OFF; > delay(delaytime); > RW_OFF; > delay(delaytime); > LCD_Control = CS; > delay(delaytime); > EN_ON; > delay(delaytime); > LCD_Data = cmd; > delay(delaytime); > EN_OFF; > delay(delaytime); > } > > void Lcd_XY_S(int s, int x_, int y_){ > Lcd_XY(x_,y_); > if(s==0) > Write_Control(CS_ALL, 0xb8 + x_*2); > else > Write_Control(CS_ALL, 0xb8 + x_*2 + 1); > if(YPosition <8) > Write_Control(CS2_OFF, 0x40 +y_*8); > else > Write_Control(CS1_OFF, 0x40 +(y_-8)*8); > } > > void Write_Data(char CS, char data){ > delay(delaytime); > EN_OFF; > delay(delaytime); > RS_ON; > delay(delaytime); > RW_OFF; > delay(delaytime); > LCD_Control = CS; > delay(delaytime); > EN_ON; > delay(delaytime); > LCD_Data = data; > delay(delaytime); > EN_OFF; > delay(delaytime); > } > > void Lcd_Clear(){ > int i, j, x, y; > LCD_Control = 0x00; > Write_Control(CS_ALL, 0x3f); > Write_Control(CS_ALL, 0xc0); > x=0xb8; > y=0x40; > for(i=0; i<=7; i++){ > Write_Control(CS_ALL, x); > Write_Control(CS_ALL, y); > for(j=0; j<64; j++){ > Write_Data(CS_ALL, 0x00); > } > x++; > } > } > > void Write_English(unsigned char code){ > int x_, y_, i, sign; > x_=XPosition; > y_=YPosition; > Lcd_XY_S(0,x_,y_); > if(YPosition < 8) > sign = CS2_OFF; > else > sign = CS1_OFF; > for(i=0;i<8;i++) > Write_Data(sign, E_font[code][i]); > Lcd_XY_S(1,x_,y_); > if(YPosition < 8) > sign = CS2_OFF; > else > sign = CS1_OFF; > for(i=8; i<16; i++) > Write_Data(sign, E_font[code][i]); > YPosition++; > if(YPosition==16){ > YPosition = 0; > XPosition++; > } > if(XPosition>3){ > XPosition = 0; > Lcd_Clear(); > } > } > > void Lcd_init(){ > RESET_OFF; > RESET_ON; > CS_ALL; > Write_Control(CS_ALL, 0x3f); > Write_Control(CS_ALL, 0xc0); > Write_Control(CS_ALL, 0xb8); > Write_Control(CS_ALL, 0x40); > } > > void Adc_Data( unsigned char Admux ) > { > unsigned int tempL, tempH; > delay(15); > ADCSRA &=0x1f; > ADMUX = Admux; > ADCSRA |= 0xC0; > delay(5); > > > delay_ms(1); > tempL = ADCL; > tempH = ADCH; > value = tempL + tempH*256; > > > > if((value<10) & (value>0) ) > { > printf(": %d", value); > } > > else if(value<100) > { > printf(": %d", value); > } > > else if(value<1000) > { > printf(": %d", value); > } > > else > { > printf(": %d", value); > } > > } > > > int main(void){ > unsigned char Va_R=0x40, Ir_S=0x41, Te_S=0x42, Cd_S=0x43; > unsigned int sensor_val; > init_devices(); > Lcd_init(); > Lcd_Clear(); > Lcd_XY(0,0); > > printf("Var_Reg"); > Lcd_XY(1,0); > printf("IR_Sens"); > Lcd_XY(2,0); > printf("Temp_Se"); > Lcd_XY(3,0); > printf("CDS_Sen"); > //Lcd_XY(4,0); //내가 한거 > > > while(1){ > Lcd_XY(0,9); > Adc_Data(0x40); > delay(2000); > Lcd_XY(1,9); > Adc_Data(0x41); > delay(2000); > Lcd_XY(2,9); > Adc_Data(0x42); > delay(2000); > Lcd_XY(3,9); > Adc_Data(0x43); > delay(2000); > } > return 0; > } >
9079 답변완료제품관련문의드립니다. 박정빈 2015-02-14 1,418
Q1> AB-M128-B와 RF모듈인 nRF24L01과 서로 호환이 가능한지 알고 싶습니다. Q2> 가능하다면 어떻게 연결을 해서 사용해야 하는지 알고 싶습니다.
관리자 답변 관리자 · 2015-02-16
안녕하세요? 고객님, nRF24L01 는 칩이름입니다만, 모듈이름으로 쓰는것도 있더군요. 엘레파츠에서 판매중인 해당 모듈은 spi통신을 사용하더군요. 본사에서 답변드릴 내용은 아닙니다만, SPI핀인 mosi, miso, sck, reset, gnd 이렇게 서로 연결해쓰세요. 감사합니다. > > > Q1> AB-M128-B와 RF모듈인 nRF24L01과 서로 호환이 가능한지 알고 싶습니다. > > Q2> 가능하다면 어떻게 연결을 해서 사용해야 하는지 알고 싶습니다. >