Q&A
| 번호 | 제목 | 작성자 | 등록일 | 조회 |
|---|---|---|---|---|
| 3243 | 답변완료인터럽트 질문입니다. | 김상락 | 2009-06-30 | 1,446 |
|
안녕하십니까? 운영자님
KT-M128 키트 사용자입니다.
아래 소스는 조도 센서값을 읽어서 밝기에 따라
스테핑모트를 작동(정회전,역회전)시키는 소스입니다.
* 아래 소스에 추가 작업을 하고 싶습니다.
리셋 버튼을 클릭할 경우 인터럽트 기능을 하게 만들어서
스테핑 모터 동작을 일시 정지시킬려고 합니다.
죄송하지만 운영자님께서
아래 소스에 추가 작업 내용 소스를 업데이트 해 주시면
고맙겠습니다.
수고하십시오
-----------------------------------------------------------------
#include <iom128v.h>
#include <macros.h>
#include <stdio.h>
#define Control (*(volatile unsigned char *)0x8001)
#define Data (*(volatile unsigned char *)0x8000)
#define EX_STEPPING (*(volatile unsigned char *)0x8009)
#define EX_LED (*(volatile unsigned char *)0x8008)
#define LCD_EN_ON (Control = (Controller |= 0x04)) //LCD 0100
#define LCD_EN_OFF (Control = (Controller &= 0x0b)) //LCD 1011
#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))
#define SCR_L_SHFT 0x18 //Screen Cursor Left shift
#define SCR_R_SHFT 0x1c
char Controller;
volatile unsigned int bright = 800; // 정회전 역회전 조도값 기준
volatile unsigned int value; //저항값을 넘기고 받기 위해사용하는 스태틱
volatile unsigned int cycleCondition = 0; // 정회전 역회전 컨디션
volatile unsigned int cycletime = 7000; // 모터 돌아가는 시간 지정
volatile unsigned char stepleft=0, stepright=0;
//ADC 초기화(처음에 쓰레기 값 지우기)
void adc_init(void)
{
ADCSRA = 0x00; //disable adc
ADMUX = 0x00; //select adc input 0
ACSR = 0x80;
ADCSRA = 0x87;
}
//포트 초기화
void port_init(void)
{
PORTA = 0x00;
DDRA = 0xff;
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0x00;
DDRC = 0x03;
PORTD = 0x00;
DDRD = 0x00;
PORTE = 0x00;
DDRE = 0x00;
PORTF = 0x00;
DDRF = 0x00;
PORTG = 0x00;
DDRG = 0x03;
}
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //인터럽트 불능
XDIV = 0x00; //xtal divider
XMCRA = 0x00; //external memory
port_init(); //포트초기화
adc_init(); //ADC초기화
//uart0_init();
MCUCR = 0x80; //MCU메모리 클리어
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(int cnt)
{
int i, j;
for (i=0; i<cnt; i++)
for (j=0; j<600; j++) {;}
}
//LCD 프롬프트 위치 지정
void Write_Controller(char value)
{
LCD_EN_OFF;
delay(1);
LCD_RS_OFF;
delay(1);
LCD_RW_OFF;
delay(1);
LCD_EN_ON;
delay(1);
Data = value;
delay(1);
LCD_EN_OFF;
delay(1);
}
//Write_Str 함수에서 받은 문자열을
//처리하는 함수
void Write_Data(char value)
{
LCD_EN_OFF;
delay(1);
LCD_RS_ON;
delay(1);
LCD_RW_OFF;
delay(1);
LCD_EN_ON;
delay(1);
Data = value;
delay(1);
LCD_EN_OFF;
delay(1);
}
//출력할 문자를 받아서 Write_Data 함수에 전송
void Write_Str(char *Str)
{
while (*Str) {
Write_Data(*Str++);
}
}
//Lcd 문자열 출력 좌표지정
void lcd_gotoxy(unsigned char x, unsigned char y)
{
switch(y)
{
case 1:
{
Write_Controller(0x80+x-1);
delay(30);
break;
}
case 2 :
{
Write_Controller(0xc0+x-1);
delay(30);
break;
}
}
}
int putchar(char c)
{
Write_Data(c);
}
//Lcd 초기화
void lcd_init(){
Write_Controller(0x38);
Write_Controller(0x0e);
Write_Controller(0x06);
}
//Lcd 값 Display함수
//LCD에 값을 출력하기 위해 값을 받는 함수
void printf_Lcd(int lin, int can, char *Str)
{
Write_Controller(0x38);
lcd_gotoxy(can, lin);
Write_Str(Str);
}
/////////////////////////////////////
//센서 저항신호를 디지털값으로 변환
int Adc_Data( unsigned char Admux )
{
unsigned int tempL, tempH;
delay(15);
value=0;
ADCSRA &=0x1f;
ADMUX = Admux;
ADCSRA |= 0xC0;
delay(5);
tempL = ADCL;
tempH = ADCH;
value = tempL + tempH*256;
delay(5);
delay(2000);
lcd_init();
Write_Controller(0x01);
Write_Controller(0x02);
printf_Lcd(0,7,"Brightness: ");
printf(" %d", value);
return value;
}
/////////////////////////////
/////////////////////////////////
/* Stepping Motor derive---------------------------*/
unsigned char LEFTmotorOneClock(unsigned char step, char dir)
{
step = step & 0x0f;
if(dir){
switch(step){
case 0x09: step=0x01; break;
case 0x01: step=0x03; break;
case 0x03: step=0x02; break;
case 0x02: step=0x06; break;
case 0x06: step=0x04; break;
case 0x04: step=0x0c; break;
case 0x0c: step=0x08; break;
case 0x08: step=0x09; break;
default: step=0x0c; break;
}
}else{
switch(step){
case 0x09: step=0x08; break;
case 0x01: step=0x09; break;
case 0x03: step=0x01; break;
case 0x02: step=0x03; break;
case 0x06: step=0x02; break;
case 0x04: step=0x06; break;
case 0x0c: step=0x04; break;
case 0x08: step=0x0c; break;
default: step=0x0c; break;
}
}
return step;
}
/* Stepping Motor derive---------------------------*/
unsigned char RIGHTmotorOneClock(unsigned char step, char dir)
{
step = step & 0xf0;
if(dir){
switch(step){
case 0x90: step=0x10; break;
case 0x10: step=0x30; break;
case 0x30: step=0x20; break;
case 0x20: step=0x60; break;
case 0x60: step=0x40; break;
case 0x40: step=0xc0; break;
case 0xc0: step=0x80; break;
case 0x80: step=0x90; break;
default: step=0xc0; break;
}
}else{
switch(step){
case 0x90: step=0x80; break;
case 0x10: step=0x90; break;
case 0x30: step=0x10; break;
case 0x20: step=0x30; break;
case 0x60: step=0x20; break;
case 0x40: step=0x60; break;
case 0xc0: step=0x40; break;
case 0x80: step=0xc0; break;
default: step=0xc0; break;
}
}
return step;
}
//조도센서의 저항에 따른 모터 정회전,역회전 함수
//센서값이 900보다 클 경우 3초동안 정회전하고
//센서값이 900보다 작을 경우 3초동안 역회전 한다.
void Motor_play(int sensor){
int i = 0;
int inverse = 1;
int reverse = 0;
if(sensor > bright && cycleCondition == 0){
cycleCondition = 1;
while(i < cycletime){
stepright = RIGHTmotorOneClock(stepright, inverse);
stepleft = LEFTmotorOneClock(stepleft, reverse);
delay(5);
EX_STEPPING = stepleft|stepright;
i++;
}
}
else if(sensor < bright && cycleCondition != 0){
cycleCondition = 0;
while(i < cycletime){
stepright = RIGHTmotorOneClock(stepright, reverse);
stepleft = LEFTmotorOneClock(stepleft, inverse);
delay(5);
EX_STEPPING = stepleft|stepright;
i++;
}
}
}
//////////////////////////////////////
void main(void)
{
int count=0;
int sensor = 0;
int i,j;
init_devices();
lcd_init();
//init_devices2();
//insert your functional code here...
//while(1) playMusic();
while(1){
sensor = Adc_Data(0X43); //조도센서와 ADC연결(0X43)
Motor_play(sensor); //조도센서에서 받은 값을 넘겨줌
//for(i=0; i<8; i+=2){
// EX_LED = 0x01<<i;
// delay(2000);
// }
}
i = 0;
}
관리자 답변
안녕하세요? 고객님,
저희 NewTC 제품을 이용하여 주셔서 감사합니다.
그런데, 본사에서 소스를 고쳐 드리거나 짜드리거나 하지는 않습니다.
본사에서 예제로 소스를 제공하고는 있지만,
고객님이 필요한 방향으로 수정하여 드리는 서비스 까지는 해드리지 않고 있음을 양해해 주시기 바랍니다.
다만, 힌트를 드리면, PORT에서 스위치 버튼 입력을 받도록 해서, 그 입력을 받으면, 다음번 키가 눌릴 때 까지는 모터가 도는 부분을 돌지 않도록 하면 되겠지요.
예를 들어서, main의 while문안에 있는 문장 중에서,
Motor_play(sensor); //조도센서에서 받은 값을 넘겨줌
를 아래와 같이 수정하면,
if(onoff){
Motor_play(sensor); //조도센서에서 받은 값을 넘겨줌
}
만약 onoff가 int onoff;로 선언되어 있다면,
onoff가 0이면 Motor_play가 동작하지 않을 테니, 안돌 거구요.
다시 한 번 키가 눌리면 1로 되도록 하면 계속 모터가 돌겠지요.
수고하세요.
>
>안녕하십니까? 운영자님
>KT-M128 키트 사용자입니다.
>아래 소스는 조도 센서값을 읽어서 밝기에 따라
>스테핑모트를 작동(정회전,역회전)시키는 소스입니다.
>
>* 아래 소스에 추가 작업을 하고 싶습니다.
>리셋 버튼을 클릭할 경우 인터럽트 기능을 하게 만들어서
>스테핑 모터 동작을 일시 정지시킬려고 합니다.
>죄송하지만 운영자님께서
>아래 소스에 추가 작업 내용 소스를 업데이트 해 주시면
>고맙겠습니다.
>
>수고하십시오
>
>-----------------------------------------------------------------
>#include <iom128v.h>
>#include <macros.h>
>#include <stdio.h>
>
>
>#define Control (*(volatile unsigned char *)0x8001)
>#define Data (*(volatile unsigned char *)0x8000)
>
>#define EX_STEPPING (*(volatile unsigned char *)0x8009)
>#define EX_LED (*(volatile unsigned char *)0x8008)
>
>
>#define LCD_EN_ON (Control = (Controller |= 0x04)) //LCD 0100
>#define LCD_EN_OFF (Control = (Controller &= 0x0b)) //LCD 1011
>#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))
>
>#define SCR_L_SHFT 0x18 //Screen Cursor Left shift
>#define SCR_R_SHFT 0x1c
>
>char Controller;
>volatile unsigned int bright = 800; // 정회전 역회전 조도값 기준
>volatile unsigned int value; //저항값을 넘기고 받기 위해사용하는 스태틱
>volatile unsigned int cycleCondition = 0; // 정회전 역회전 컨디션
>volatile unsigned int cycletime = 7000; // 모터 돌아가는 시간 지정
>volatile unsigned char stepleft=0, stepright=0;
>
>
>
>
>//ADC 초기화(처음에 쓰레기 값 지우기)
>void adc_init(void)
>{
> ADCSRA = 0x00; //disable adc
> ADMUX = 0x00; //select adc input 0
> ACSR = 0x80;
> ADCSRA = 0x87;
>}
>
>//포트 초기화
>void port_init(void)
>{
>
> PORTA = 0x00;
> DDRA = 0xff;
> PORTB = 0x00;
> DDRB = 0x00;
> PORTC = 0x00;
> DDRC = 0x03;
> PORTD = 0x00;
> DDRD = 0x00;
> PORTE = 0x00;
> DDRE = 0x00;
> PORTF = 0x00;
> DDRF = 0x00;
> PORTG = 0x00;
> DDRG = 0x03;
>
>}
>
>
>
>
>//call this routine to initialize all peripherals
>void init_devices(void)
>{
> //stop errant interrupts until set up
> CLI(); //인터럽트 불능
> XDIV = 0x00; //xtal divider
> XMCRA = 0x00; //external memory
> port_init(); //포트초기화
> adc_init(); //ADC초기화
> //uart0_init();
> MCUCR = 0x80; //MCU메모리 클리어
> 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(int cnt)
>{
> int i, j;
> for (i=0; i<cnt; i++)
> for (j=0; j<600; j++) {;}
>}
>
>//LCD 프롬프트 위치 지정
>void Write_Controller(char value)
>{
> LCD_EN_OFF;
> delay(1);
> LCD_RS_OFF;
> delay(1);
> LCD_RW_OFF;
> delay(1);
> LCD_EN_ON;
> delay(1);
> Data = value;
> delay(1);
> LCD_EN_OFF;
> delay(1);
>}
>
>//Write_Str 함수에서 받은 문자열을
>//처리하는 함수
>void Write_Data(char value)
>{
> LCD_EN_OFF;
> delay(1);
> LCD_RS_ON;
> delay(1);
> LCD_RW_OFF;
> delay(1);
> LCD_EN_ON;
> delay(1);
> Data = value;
> delay(1);
> LCD_EN_OFF;
> delay(1);
>}
>
>//출력할 문자를 받아서 Write_Data 함수에 전송
>void Write_Str(char *Str)
>{
> while (*Str) {
> Write_Data(*Str++);
> }
>}
>
>//Lcd 문자열 출력 좌표지정
>void lcd_gotoxy(unsigned char x, unsigned char y)
>{
> switch(y)
> {
> case 1:
> {
> Write_Controller(0x80+x-1);
> delay(30);
> break;
> }
> case 2 :
> {
> Write_Controller(0xc0+x-1);
> delay(30);
> break;
> }
>
> }
>}
>
>int putchar(char c)
>{
> Write_Data(c);
>}
>
>//Lcd 초기화
>void lcd_init(){
> Write_Controller(0x38);
> Write_Controller(0x0e);
> Write_Controller(0x06);
> }
>
>//Lcd 값 Display함수
>//LCD에 값을 출력하기 위해 값을 받는 함수
>void printf_Lcd(int lin, int can, char *Str)
>{
> Write_Controller(0x38);
> lcd_gotoxy(can, lin);
> Write_Str(Str);
>}
>
>/////////////////////////////////////
>//센서 저항신호를 디지털값으로 변환
>int Adc_Data( unsigned char Admux )
>{
> unsigned int tempL, tempH;
> delay(15);
> value=0;
> ADCSRA &=0x1f;
> ADMUX = Admux;
> ADCSRA |= 0xC0;
> delay(5);
>
> tempL = ADCL;
> tempH = ADCH;
> value = tempL + tempH*256;
> delay(5);
>
> delay(2000);
> lcd_init();
> Write_Controller(0x01);
> Write_Controller(0x02);
> printf_Lcd(0,7,"Brightness: ");
> printf(" %d", value);
>
> return value;
>}
>/////////////////////////////
>/////////////////////////////////
>/* Stepping Motor derive---------------------------*/
>unsigned char LEFTmotorOneClock(unsigned char step, char dir)
>{
> step = step & 0x0f;
> if(dir){
> switch(step){
> case 0x09: step=0x01; break;
> case 0x01: step=0x03; break;
> case 0x03: step=0x02; break;
> case 0x02: step=0x06; break;
> case 0x06: step=0x04; break;
> case 0x04: step=0x0c; break;
> case 0x0c: step=0x08; break;
> case 0x08: step=0x09; break;
> default: step=0x0c; break;
> }
> }else{
> switch(step){
> case 0x09: step=0x08; break;
> case 0x01: step=0x09; break;
> case 0x03: step=0x01; break;
> case 0x02: step=0x03; break;
> case 0x06: step=0x02; break;
> case 0x04: step=0x06; break;
> case 0x0c: step=0x04; break;
> case 0x08: step=0x0c; break;
> default: step=0x0c; break;
> }
> }
> return step;
>
>}
>/* Stepping Motor derive---------------------------*/
>unsigned char RIGHTmotorOneClock(unsigned char step, char dir)
>{
> step = step & 0xf0;
> if(dir){
> switch(step){
> case 0x90: step=0x10; break;
> case 0x10: step=0x30; break;
> case 0x30: step=0x20; break;
> case 0x20: step=0x60; break;
> case 0x60: step=0x40; break;
> case 0x40: step=0xc0; break;
> case 0xc0: step=0x80; break;
> case 0x80: step=0x90; break;
> default: step=0xc0; break;
> }
> }else{
> switch(step){
> case 0x90: step=0x80; break;
> case 0x10: step=0x90; break;
> case 0x30: step=0x10; break;
> case 0x20: step=0x30; break;
> case 0x60: step=0x20; break;
> case 0x40: step=0x60; break;
> case 0xc0: step=0x40; break;
> case 0x80: step=0xc0; break;
> default: step=0xc0; break;
> }
> }
> return step;
>}
>
>//조도센서의 저항에 따른 모터 정회전,역회전 함수
>//센서값이 900보다 클 경우 3초동안 정회전하고
>//센서값이 900보다 작을 경우 3초동안 역회전 한다.
>void Motor_play(int sensor){
>int i = 0;
>int inverse = 1;
>int reverse = 0;
>if(sensor > bright && cycleCondition == 0){
> cycleCondition = 1;
> while(i < cycletime){
> stepright = RIGHTmotorOneClock(stepright, inverse);
> stepleft = LEFTmotorOneClock(stepleft, reverse);
> delay(5);
> EX_STEPPING = stepleft|stepright;
> i++;
> }
> }
>else if(sensor < bright && cycleCondition != 0){
> cycleCondition = 0;
> while(i < cycletime){
> stepright = RIGHTmotorOneClock(stepright, reverse);
> stepleft = LEFTmotorOneClock(stepleft, inverse);
> delay(5);
> EX_STEPPING = stepleft|stepright;
> i++;
> }
> }
>}
>
>//////////////////////////////////////
>void main(void)
>{
> int count=0;
> int sensor = 0;
>
> int i,j;
>
> init_devices();
> lcd_init();
>
> //init_devices2();
> //insert your functional code here...
> //while(1) playMusic();
>
> while(1){
> sensor = Adc_Data(0X43); //조도센서와 ADC연결(0X43)
> Motor_play(sensor); //조도센서에서 받은 값을 넘겨줌
>
> //for(i=0; i<8; i+=2){
> // EX_LED = 0x01<<i;
> // delay(2000);
> // }
> }
>
> i = 0;
>
>
>}
>
>
>
>
>
>
>
>
>
>
>
>
|
||||
| 3242 | 답변완료AD-USBISP V03로 디버깅 하는거 다시 질문입니다. | 김민석 | 2009-06-30 | 1,300 |
|
디버깅을 하기위해서는 UART 커넥터를 사용해야된다는 말씀 같은데요 ;;
AM-128RAM V01에 UART0과 UART1에 핀이 세개있고 AD-USBISP V03에
ISP연결하는 부분은 6핀으로 이루어져 있고 그윗부분에 4핀 짜리로
나온게 있던데 그걸 연결 하는건가요 ? UART 핀 3개랑 그 윗부분 4개짜리 핀을
어떻게 연결하면 되는건가요 ?
UART0 이나 UART1에 연결 하는 별매 serial cable을 이용 해서 하는건가요 ? serial cable은 어디서 살수 있나요 ?
관리자 답변
AM-128RAM의 UART0및 UART1의 3핀 커넥터는 15V 정도의 레벨 출력인 PC 레벨의 RS-232C 이구요. 옆의 16*2의 커넥터 두개에서 UART0 및 UART1에 대응하는 커넥터인 PORTE0,1번과 PORTD2,3 번을 빼서 연결하면 되겠구요.
본사의 메인보드를 쓸 경우는 이미 UART0와 UART1의 TTL Level용 4핀 커넥터가 나와 있으니, 그거랑 1:1로 연결하여 쓰면 되겠습니다.
커넥터 배치는 아래와 같습니다. USBISP는 UART 커넥터를 자기 기준으로 RX, TX가 적혀 있습니다. AVR과 연결시는 RX, TX 가 cross 될 수 있도록 하는 데, 그렇게 하려면, 4핀 1:1 케이블을 쓰면 되도록 이미 PCB에서 cross 되어 있습니다.
그냥 1:1로 연결하면 되는 데, 이런 케이블은 SE-MIN1 케이블을 4개 쓰면 되는 데, 이는 본사나 에스와이 전자에서 구매 가능하구요. 또한, 본사에 방문하면 4핀 케이블 하나 정도는 그냥 드릴 수도 있겠습니다. 현재 위치가 이전되어 홈페이지 아래에 있는 주소로 찾아 오셔야 합니다.
아직, 약도가 업데이트 되지 않았으니, 꼭 주소로 찾아 오세요.
수고하세요.
>디버깅을 하기위해서는 UART 커넥터를 사용해야된다는 말씀 같은데요 ;;
>AM-128RAM V01에 UART0과 UART1에 핀이 세개있고 AD-USBISP V03에
>ISP연결하는 부분은 6핀으로 이루어져 있고 그윗부분에 4핀 짜리로
>나온게 있던데 그걸 연결 하는건가요 ? UART 핀 3개랑 그 윗부분 4개짜리 핀을
>어떻게 연결하면 되는건가요 ?
>UART0 이나 UART1에 연결 하는 별매 serial cable을 이용 해서 하는건가요 ? serial cable은 어디서 살수 있나요 ?
>
|
||||
| 3241 | 답변완료부품부족분 청구 요청 | 공영근 | 2009-06-30 | 1,320 |
|
어제 부품 부족때문에 청구한 사람입니다.
세라믹 콘덴서 9개 (한개도 없으니 9개가 맞을겁니다)
LED 1개
그이외에는 다 있습니다.
택배 주소지
경남 창원시 가음정동 LG 생활관 202동 238호 공영근
위쪽으로 보내주시면 감사하겠습니다..
수고하세요~~
관리자 답변
고객님, 택배를 보내려면 전화번호도 함께 남기셔야 합니다.
연락처 부탁합니다.
전화 번호 안남기셔서, 114에 물어봐서 LG전자 1공장 안내에 전화해서
성함 물어보니까, 사무실 전화번호를 알려 주셔서, 그 쪽으로 전화를 하는 데, 안받으시네요. 다들 어디 나가셨나 봐요.
일단은 연락이 안되서, 택배 발송을 그 전화 번호로 함께 하니, 받으시기 바랍니다.
수고하세요.
>어제 부품 부족때문에 청구한 사람입니다.
>
>
>세라믹 콘덴서 9개 (한개도 없으니 9개가 맞을겁니다)
>LED 1개
>
>그이외에는 다 있습니다.
>
>택배 주소지
>경남 창원시 가음정동 LG 생활관 202동 238호 공영근
>
>위쪽으로 보내주시면 감사하겠습니다..
>
>수고하세요~~
|
||||
| 3240 | 답변완료안녕하세요 | bgt | 2009-06-30 | 1,442 |
|
AM-SLCD 에 관한 질문입니다
LC1641(기존쓰는 제품임) 또는 4X16 LCD 는 모두 가능한지 알고싶습니다
혹 2X16 이나 4X16 이나 모든 캐릭터 LCD는 초기화 명령은 같고
나머지 line 수만 틀린건가요 그렇다면 이모듈도 지원되겠네요
관리자 답변
안녕하세요? 저희 N.T.C 제품에 관한 질문시 유의사항입니다.
저희 Q&A 게시판은 저희 N.T.C 제품을 사용하시는 분들을 위한 질문과 답변을 해 드리는 게시판입니다.
또한, 반드시 본명을 사용하여 질문하셔야 합니다.
이상의 내용을 지켜 주시면, 언제든 질문은 환영이고, 늘 최선을 다하여 답변 드리겠습니다.
하지만, 이번만 답변하여 드릴께요.^^ 다음에는 꼭 본명으로부탁드립니다.
일단, 스펙을 찾아보니 핀 배열은 동일합니다. 따라서, 사용 가능할 것 같습니다만, 초기화 방법 등이 LCD마다 약간씩 타이밍에 차이가 있습니다. 거의 같지만요.
정확한 것은 LCD와 본사의 SLCD와 테스트를 해봐야 알 것 같습니다.
말씀하신 것처럼 라인 수만 다른 겁니다.
감사합니다.
>AM-SLCD 에 관한 질문입니다
>
>LC1641(기존쓰는 제품임) 또는 4X16 LCD 는 모두 가능한지 알고싶습니다
>혹 2X16 이나 4X16 이나 모든 캐릭터 LCD는 초기화 명령은 같고
>나머지 line 수만 틀린건가요 그렇다면 이모듈도 지원되겠네요
>
|
||||
| 3239 | 답변완료스텝 모터 드라이버 관련 | 박영순 | 2009-06-30 | 1,436 |
|
안녕하세요. NTC의 스텝모터 드라이버를 사용하려고 하는데요. 예전에 구입으란 제품을 사용하려 합니다.
그런데 홈페이지를 보니 두가지 종류의 드라이버가 있는데 어느 드라이버인지 몰라서 두가지 방식중에 어느 것으로 사용할지 결정을 못하고 있습니다.
그래서 어느 모델인지 좀 알려 주셨으면 합니다.
감사합니다.
관리자 답변
안녕하세요? 고객님,
구매하신 드라이버는 AM-CS2P 입니다.
- 참고 소스 1 -
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=CS2P&select_arrange=headnum&desc=asc&no=289
- 참고 소스 2 -
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=CS2P&select_arrange=headnum&desc=asc&no=206
감사합니다.
>안녕하세요. NTC의 스텝모터 드라이버를 사용하려고 하는데요. 예전에 구입으란 제품을 사용하려 합니다.
>
>그런데 홈페이지를 보니 두가지 종류의 드라이버가 있는데 어느 드라이버인지 몰라서 두가지 방식중에 어느 것으로 사용할지 결정을 못하고 있습니다.
>
>그래서 어느 모델인지 좀 알려 주셨으면 합니다.
>
>감사합니다.
>
|
||||
| 3238 | 답변완료문의사항 | 변성훈 | 2009-06-30 | 1,388 |
|
AB-M128-A,AD-USBISP V03 -L , AM-TLCD-P
구성을 해서 들어있는 설명서와 자료실에 있는 기초 자료로 LCD 테스트 소스로
구동을 하려하는데 안되네요.. 설정은 ISP부에 나와있는데로 했는데...
잘 안되서 문의를 드립니다.
관리자 답변
안녕하세요? 고객님,
연결은 어떻게 구성하셨는 지요?
어떤 포트에 뭘 연결했는 지..
그리고, 어떤 것이 안되는 지 구체적으로 질문 부탁드립니다.
컴파일러는 뭘 썼는 지 어떤 소스를 참고하셨는 지도 남겨 주세요.
감사합니다.
>AB-M128-A,AD-USBISP V03 -L , AM-TLCD-P
>
>구성을 해서 들어있는 설명서와 자료실에 있는 기초 자료로 LCD 테스트 소스로
>
>구동을 하려하는데 안되네요.. 설정은 ISP부에 나와있는데로 했는데...
>
>잘 안되서 문의를 드립니다.
|
||||
| 3237 | 답변완료AB-M16-B 보드에 관한 셈플소스 | 이종국 | 2009-06-30 | 1,483 |
|
제목과 같은 질문입니다.
AVR을 처음 사용해보는 사람입니다..(MCU에대해서 완전 문외한 입니다)
AB-M16-B 보드에 기본 기능으로 달려있는 RS-232라던가 Uart 통신에 관한 셈플 소스가 있는지 궁금합니다..
기본적인 I/O제어하는 소스도 있다면 좋을것같구요..
말씀드린 자료가 있다면 메일로 좀 보내주십시오..
감사합니다.
관리자 답변
안녕하세요? 고객님,
저희 NewTC 제품을 이용하여 주셔서 감사합니다.
자료실->기존자료실에 가서 16 이라고 치면 소스들이 나올겁니다.
- 아래 -
포트 I/O 예제
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=16&select_arrange=headnum&desc=asc&no=244
- DL16 라인트레이서소스 -
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=16&select_arrange=headnum&desc=asc&no=182
ATMEGA16으로 짠 UART 소스는 첨부하였습니다.
감사합니다.
>
>제목과 같은 질문입니다.
>
>AVR을 처음 사용해보는 사람입니다..(MCU에대해서 완전 문외한 입니다)
>
>AB-M16-B 보드에 기본 기능으로 달려있는 RS-232라던가 Uart 통신에 관한 셈플 소스가 있는지 궁금합니다..
>
>기본적인 I/O제어하는 소스도 있다면 좋을것같구요..
>
>말씀드린 자료가 있다면 메일로 좀 보내주십시오..
>
>감사합니다.
>
>
|
||||
| 3236 | 답변완료JTAG커넥터 연결 질문입니다. | 황순곤 | 2009-06-30 | 1,487 |
|
안녕하십니까
AB-M128PRO-A 제품 구매자 입니다.
다름이 아니라 JTAG커넥터 연결이 안되어서 이렇게 질문 올립니다.
JTAG문제 인가 싶어서 다른 제품들까지 빌려서 총 3가지 제품으로
연결을 시도해 보왔습니다. 하지만 JTAG커넥터 연결이 되지가 않고 있습니다.
기타 타회사의 ATmega128보드도 사용하고 있는데 이 제품은 연결이 바로
되는데 현재 구매한 AB-M128PRO-A 제품은 연결이 안되고 있습니다
사용 프로그램은 AVR Studio 4.13을 사용하고 있습니다. 혹시나 싶어서
ICCAVR로 연결을 시도해 보왔습니다. 현재는 제품 초기결함으로 판단하고
A/S를 맞겼으면 합니다.
두번째 질문입니다.
택배로 보낼시 CJ택배로 뉴테크놀로지 로 보냅니다.라고 하면 택배비가 2200원
정도라고 되어있는데 그냥 기재되어있는 주소 적어놓고 기사분 오시면 그렇게
말하면 되는것인지도 궁금 합니다.
관리자 답변
안녕하세요? 고객님,
저희 NewTC 제품을 이용하여 주셔서 감사합니다.
고객님의 경우는 제품의 결함이 아니구요. 우선, JTAG을 쓰시려면 퓨즈비트의 JTAG EN 을 0으로 셋팅(체크)하여 주셔야 합니다. 본사의 제품은 일반적인 편의상 JTAG EN 핀이 셋팅되어 있지 않습니다.
그 이유는 JTAG 을 ENABLE 하게 되면 F 포트의 일부를 사용하지 못하게 되므로, F 포트를 전체 다 사용하게 하도록 하기 위하여 사용이 안되도록 되어 있습니다.
퓨즈 비트를 변경하셔서, JTAG EN을 셋팅하면 이상 없이 사용이 가능합니다.
셋팅하여 사용하시면 이상 없이 쓰실 수 있겠습니다.
ATMEGA128은 ICCAVR에서 0xff19ef 나 0xff99ef로 변경하여 사용하면 됩니다.
수고하세요.
>안녕하십니까
>
>AB-M128PRO-A 제품 구매자 입니다.
>
>다름이 아니라 JTAG커넥터 연결이 안되어서 이렇게 질문 올립니다.
>
>JTAG문제 인가 싶어서 다른 제품들까지 빌려서 총 3가지 제품으로
>
>연결을 시도해 보왔습니다. 하지만 JTAG커넥터 연결이 되지가 않고 있습니다.
>
>기타 타회사의 ATmega128보드도 사용하고 있는데 이 제품은 연결이 바로
>
>되는데 현재 구매한 AB-M128PRO-A 제품은 연결이 안되고 있습니다
>
>사용 프로그램은 AVR Studio 4.13을 사용하고 있습니다. 혹시나 싶어서
>
>ICCAVR로 연결을 시도해 보왔습니다. 현재는 제품 초기결함으로 판단하고
>
>A/S를 맞겼으면 합니다.
>
>두번째 질문입니다.
>
>택배로 보낼시 CJ택배로 뉴테크놀로지 로 보냅니다.라고 하면 택배비가 2200원
>
>정도라고 되어있는데 그냥 기재되어있는 주소 적어놓고 기사분 오시면 그렇게
>
>말하면 되는것인지도 궁금 합니다.
|
||||
| 3235 | 답변완료안녕하세요..퓨즈셋팅 관련해서 질문드려요... | 이경남 | 2009-06-30 | 1,383 |
|
N.T.C에서 atmega128 모듈을 12를 구매하였는데...
그런데 2개의 CPU만 퓨즈셋팅이 안되네요..
왜그런지 궁금합니다....
관리자 답변
안녕하세요? 이경남 고객님,
저희 NewTC 제품을 이용하여 주셔서 감사합니다.
제품을 택배로 본사로 보내주세요.
테스트 하여 보도록 하겠습니다.
원래 모듈의 경우는 100% 테스트 하여 출고하고 있습니다만,
테스트 한 후에 새 제품으로 교환하여 드리도록 하겠습니다.
감사합니다.
>N.T.C에서 atmega128 모듈을 12를 구매하였는데...
>
>그런데 2개의 CPU만 퓨즈셋팅이 안되네요..
>
>왜그런지 궁금합니다....
>
>
|
||||
| 3234 | 답변완료usb-isp v03을 이용하여 디버깅을 할수 있나요 ? | 김민석 | 2009-06-30 | 1,390 |
|
자료실에서 시리얼 포트를 이용하여 디버깅을 하는것이
나왔는데 그것과 같이 했는데 하이퍼터미널을 키고
F9 을 누르면 error 창이 뜨면서
Unable to detect STK500 device.
Aborting ISP function
이라고 뜨는데요 ..
하이퍼 터미널을 안켰을때는 정상적으로 디버깅되고요 .
관리자 답변
안녕하세요? 고객님,
저희 NewTC 제품을 이용하여 주셔서 감사합니다.
USBISP V03에는 ISP 기능과 USB to UART 기능이 함께 포함되어 있습니다.
하지만, 동시에 같은 AVR에 연결하여 사용은 불가합니다.
이유는 AVR 자체가 같은 핀을 여러가지 기능으로 쓰는 데,
동시에 사용은 불가하기 때문입니다.
ISP 커넥터를 꽂아 사용할 때는 UART용 커넥터는 빼셔야 하구요.
UART 커넥터를 사용하실 때는 ISP 커넥터를 뺴고 하셔야 합니다.
수고하세요.
> 자료실에서 시리얼 포트를 이용하여 디버깅을 하는것이
>나왔는데 그것과 같이 했는데 하이퍼터미널을 키고
>F9 을 누르면 error 창이 뜨면서
>Unable to detect STK500 device.
>Aborting ISP function
>이라고 뜨는데요 ..
> 하이퍼 터미널을 안켰을때는 정상적으로 디버깅되고요 .
>
>
|
||||
| 3233 | 답변완료스테핑모터 문의드립니다. | 최훈석 | 2009-06-30 | 1,483 |
|
안녕하세요
스테핑모터 사용에 관해서 문의드려요
줄을 이용하여 질량체를 올리고 내리는 동작을 구현하려하는데요
모터가 정지하면 질량체를 정지위치에 고정한 상태로 유지하도록
하려 합니다. 펄스가 모터로 입력되지 않는다면 정지상태를 유지
하는게 아닌지요?
어떻게 해야 하는지 답변부탁드려요~
관리자 답변
안녕하세요?
모터가 홀딩 토크 내에서 클럭이 들어온 상태로 다음 클럭이 안들어 오면, 서 있는 게 맞습니다.
하지만, 홀딩 토크를 넘어서게 되면 다음 단계로 넘어가게 되겠지요.
최대 토크로 주려면 전원을 24V 3A 정도를 SMPS로 넣어 주는 게 좋습니다.
감사합니다.
>안녕하세요
>스테핑모터 사용에 관해서 문의드려요
>줄을 이용하여 질량체를 올리고 내리는 동작을 구현하려하는데요
>모터가 정지하면 질량체를 정지위치에 고정한 상태로 유지하도록
>하려 합니다. 펄스가 모터로 입력되지 않는다면 정지상태를 유지
>하는게 아닌지요?
>어떻게 해야 하는지 답변부탁드려요~
|
||||
| 3232 | 답변완료부품 부족 | 공영근 | 2009-06-29 | 1,349 |
|
AVR MEGA 128pro 개발키트 조립하고 있는 중인데요
세라믹 콘덴서하고 기타 등등 부품 몇개가 부족한거 같던데..
원래 없는 건가요?? 사진에는 있는것 같던데요...
관리자 답변
안녕하세요? 고객님,
저희 NewTC 제품을 이용하여 주셔서 감사합니다.
불편을 끼쳐 드려서 죄송합니다.
어떤 부품이 부족하신지 말씀하여 주시면, 택배로 보내드리도록 하겠습니다.
DS1307 IC는 원래 포함되어 있지 않구요. 인터페이스만 제공되고 있습니다.
세라막 컨덴서가 몇개나 부족한가요?
감사합니다.
>AVR MEGA 128pro 개발키트 조립하고 있는 중인데요
>
>세라믹 콘덴서하고 기타 등등 부품 몇개가 부족한거 같던데..
>
>원래 없는 건가요?? 사진에는 있는것 같던데요...
|
||||
| 3231 | 답변완료DC모터 라인트레이서 | 박종복 | 2009-06-29 | 1,255 |
|
NTC사의 DC라인트레이서를 가지고있습니다.
통신포트를 이용해서 디버깅하는 pdf가 안열려서그러는데
자료를 메일로 부탁드려도될까요?
고생하세요!
관리자 답변
안녕하세요? 고객님, 자료실이나 Q&A에서 다운이 잘 안되시는 고객님들을 위하여, 링크를 개방합니다. 또한, 본사의 네이버 까페를 이용하셔도 됩니다. ( http://cafe.naver.com/NewTC )
또한,
파일 다운로드할 때 오류가 생기는 분은
Windows XP에서는
익스플로러에서 도구-인터넷옵션-고급->국제
UTF-8 보내기에 있는 체크를 해제 하시고, 적용, 확인 하시면 됩니다.
간혹, 그래도 안 되시면 프록시나 HTTP1.1 관련 된 부분도 체크 해 보시구요.
바이러스 프로그램에서 등록 안되어 있으면 안되는 경우도 있으니, 백신을 내리거나, 신뢰 구역에 넣어 주시면 될 수도 있습니다.
아래에서 필요하신 강좌의 링크를 카피하셔서 익스플로러에 치시면 다운 가능합니다. 많이 이용하세요.
- 아래 -
AVR 기초강좌 : http://www.NewTC.co.kr/강좌/AVR기초강좌.zip
AVR 기본강좌 : http://www.NewTC.co.kr/강좌/AVR기본강좌.zip
기초 전자공학 : http://www.NewTC.co.kr/강좌/기초전자공학.zip
전자공학응용과정(노이즈쪽):
http://www.NewTC.co.kr/강좌/전자공학응용과정.zip
로봇공학 : http://www.NewTC.co.kr/강좌/로봇공학_라인트레이서.zip
자바기초 : http://www.NewTC.co.kr/강좌/자바기초.zip
졸업작품만들기 : http://www.NewTC.co.kr/강좌/졸업작품만들기.zip
다 해보시고, 굳이 안되시면 다시 남겨 주시면 보내드릴 수는 있지만,
여러가지 다른 정보들도 계속 그런 식으로 보내드리는 것은 곤란하구요.
또한, 고객님 입장에서도 불편할 겁니다. 그러니, 위에서 알려드린 방법대로 일단 해 보시기 바랍니다.
감사합니다.
>NTC사의 DC라인트레이서를 가지고있습니다.
>통신포트를 이용해서 디버깅하는 pdf가 안열려서그러는데
>자료를 메일로 부탁드려도될까요?
>고생하세요!
|
||||
| 3230 | 답변완료ad-usbisp v0.3사용불가 | 이명준 | 2009-06-29 | 1,278 |
|
드라이버 v0.3설치해서 사용하는데 인식은 한다고 파란불이 들어오네요. 그런데 Writing 이 안되네요. 무슨 문제가?? 다른분들도 문제가 있다고 글을 많이 올렸는데..정확한 방법 설명좀..설명서 대로 다 해봤는데 잘 안풀리네요. 지금 v2.0제품을 사용하고 있는데 그것은 잘 되는데 v3.0은 먹통이네요. 이거 본사로 보내드려야 하나요??? 답변좀 부탁드립니다.
관리자 답변
안녕하세요 ?
고객님, 여러 분들이 그렇게 글은 올리시는 데, 저희가 테스트 하면,
아직 거의 불량이 없습니다. 다들 사용법에 관한 문제가 대부분입니다.
하지만, 본사로 보내주시면 성심성의껏 A/S 및 테스트 해 드리겠습니다.
본사로 ...
서울특별시 용산구 한강로3가 16-85 GS한강오피스텔 521호
보내시면 되고요 증상 및 연락처 등 적어서 보내시면 됩니다.
택배비는 USBISP의 경우 7월 말까지는 본사에서 부담하도록 하겠습니다.
감사합니다.
>드라이버 v0.3설치해서 사용하는데 인식은 한다고 파란불이 들어오네요. 그런데 Writing 이 안되네요. 무슨 문제가?? 다른분들도 문제가 있다고 글을 많이 올렸는데..정확한 방법 설명좀..설명서 대로 다 해봤는데 잘 안풀리네요. 지금 v2.0제품을 사용하고 있는데 그것은 잘 되는데 v3.0은 먹통이네요. 이거 본사로 보내드려야 하나요??? 답변좀 부탁드립니다.
|
||||
| 3229 | 답변완료질문있습니다. | 김수현 | 2009-06-29 | 1,463 |
|
n.t.c 사이트에 3축 가속도 센서가 있던데
센서의 모델명을 검색해보니 중력 감지 센서(기울기 센서) 같은데
3축 가속도 센서가 맞나요? 아니면 둘다 되는건가요?
관리자 답변
안녕하세요,
데이타 시트를 보시면 가속도계가 맞습니다.
자세히 다시한번 다시 보시길 권해 드려요
가속도 = static 가속도 + dynamic 가속도인데요.
그 중에 static 가속도가 중력 감지입니다.
가속도에 관련 수학공식을 찾아보세요 중력계산식이 들어갑니다.
감사합니다.
>n.t.c 사이트에 3축 가속도 센서가 있던데
>
>센서의 모델명을 검색해보니 중력 감지 센서(기울기 센서) 같은데
>
>3축 가속도 센서가 맞나요? 아니면 둘다 되는건가요?
|
||||
