Q&A
| 번호 | 제목 | 작성자 | 등록일 | 조회 |
|---|---|---|---|---|
| 2283 | 답변완료AB-M128-B 보드로 서보모터 구동하기 | 송창병 | 2009-01-31 | 1,440 |
|
얼마전 귀사의 AB-M16-B을 구입했습니다.
보드와 서보모터 제어 보드를 같이 구매해서 서보모터를 구동하려고 했으나 홈페이지에서 제공하는 예제파일이나 네이버까페에서의 파일들이 거의 대부분이 128로 되어 있어 결국 AB-M128-B을 다시 구매 했습니다.
저희가 서보모터를 3개를 구동해야 하는데 잘 되지 않아서 이렇게 글을 올립니다.
현재 하나는 구동이 가능합니다.
자료실에서 받은 예제는 서보모터들이 똑같은 회전을 하여서 쓰지를 못하고 있습니다.
저희가 각각 다른 운동을 하는 서보모터를 구동해야 되는데 혹시 예제파일이 있을까해서 문의 드립니다.
-하나는 180도로 계속 왕복운동을 하고, 나머지 두개는 0도, 90도, 180도를 회전하면 됩니다.(서보모터 - Hitec ; HSR-5995TG)
혹시 소스파일이 있으시면 부탁드리겠습니다.
관리자 답변
안녕하세요? 고객님,
아래 고객님이 한 질문하고 좀 비슷하네요.
예를 들어서 설명하죠.
소스 중에서,
for(i=140; i>115; i--){
Servo[1] = i;
delay(100);
}
라는 부분이 있지요?
Servo[1] = i; 라는 곳에서, i 값으로 서보의 위치가 결정되거든요.
Servo[2] = (140-i) + 115; 라고 주시면 반대로 돌아갈 것 같네요.
서보 모터의 원리는 아시죠? 강좌->AVR 강좌에서 서보모터 강좌를 참고하시면,
이유를 아실 수 있을 겁니다. PWM 주기를 반대로 주는 것이에요.
그 소스보다는 아래 소스를 보면 더욱 좋은 소스이니, 아래 소스를 고치시는 게 더 정밀하게 제어 가능할 겁니다.
소스는 기본적으로 Servo[n] = i;
라고 했을 때, n번째 서보를 i에 해당하는 위치에 가져다 놓도록 디자인되어 있습니다. 참고하셔서, 고치시면 되겠습니다.
- 아래 -
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=277
수고하세요.
>얼마전 귀사의 AB-M16-B을 구입했습니다.
>보드와 서보모터 제어 보드를 같이 구매해서 서보모터를 구동하려고 했으나 홈페이지에서 제공하는 예제파일이나 네이버까페에서의 파일들이 거의 대부분이 128로 되어 있어 결국 AB-M128-B을 다시 구매 했습니다.
>
>저희가 서보모터를 3개를 구동해야 하는데 잘 되지 않아서 이렇게 글을 올립니다.
>현재 하나는 구동이 가능합니다.
>
>자료실에서 받은 예제는 서보모터들이 똑같은 회전을 하여서 쓰지를 못하고 있습니다.
>저희가 각각 다른 운동을 하는 서보모터를 구동해야 되는데 혹시 예제파일이 있을까해서 문의 드립니다.
>-하나는 180도로 계속 왕복운동을 하고, 나머지 두개는 0도, 90도, 180도를 회전하면 됩니다.(서보모터 - Hitec ; HSR-5995TG)
>
>혹시 소스파일이 있으시면 부탁드리겠습니다.
>
|
||||
| 2282 | 답변완료서보모터 제어 질문입니다. | 김재훈 | 2009-01-31 | 1,252 |
|
AVR MEGA 128 개발보드(AB-M128-B)를 현재 사용중인데요.
N.T.C까페에 edukci 님께서 올리신 서보모터 제어소스에 대해
좀 물어볼까 합니다.
그분께서 올리신 소스 파일로는 C포트 2번핀에 연결된 서보모터가 좌우로 움직이게 되는데 C포트 3번핀에 그와 정 반대되는 움직임을 주려면 그 소스에 어떤 명령어를 추가하여야 하는지 가르쳐 주실수 있나요?
제가 AVR을 처음 접해보고 C프로그래밍도 정말 많이 서툴러서 어찌해야될지 막막하네요.
부탁 드립니다.^^
아래는 그 분께서 올리신 소스자료 입니다.
//ICC-AVR application builder : 2008-05-07 오후 11:19:12
// Target : M128
// Crystal: 16.000Mhz
#include <iom128v.h>
#include <macros.h>
#include <stdio.h>
#define SERVO_PORT PORTC
#define Min_Ang 50
#define Max_Ang 200
//volatile unsigned int Tcount=0;
volatile unsigned char T20ms=0; Tcount=0; Servo[8], num=1;
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;
}
//TIMER0 initialize - prescale:128
// WGM: Normal
// desired value: 1mSec
// actual value: 1.000mSec (0.0%)
void timer0_init(void)
{
TCCR0 = 0x00; //stop
ASSR = 0x00; //set async mode
TCNT0 = 0x06; //set count
OCR0 = 0xFA;
TCCR0 = 0x04; //start timer
}
#pragma interrupt_handler timer0_ovf_isr:17
void timer0_ovf_isr(void)
{
TCNT0 = 0x06; //reload counter value
T20ms++;
if(T20ms >= 20)
{
T20ms = 0;
Tcount = 0;
}
}
//TIMER2 initialize - prescale:8
// WGM: Normal
// desired value: 100uSec
// actual value: 100.000uSec (0.0%)
void timer2_init(void)
{
TCCR2 = 0x00; //stop
TCNT2 = 0xEC; //setup
OCR2 = 0x14;
TCCR2 = 0x02; //start
}
#pragma interrupt_handler timer2_ovf_isr:11
void timer2_ovf_isr(void)
{
TCNT2 = 0xEC; //reload counter value
Tcount++;
// for(num=0; num<2; num++)
if(Servo[num]>Tcount)
SERVO_PORT |= (0x01<<num);
else SERVO_PORT &= (~(0x01<<num));
}
//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();
timer0_init();
timer2_init();
MCUCR = 0x00;
EICRA = 0x00; //extended ext ints
EICRB = 0x00; //extended ext ints
EIMSK = 0x00;
TIMSK = 0x41; //timer interrupt sources
ETIMSK = 0x00; //extended timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
void delay(int cnt)
{
unsigned char i, j;
for(i=0;i<cnt;i++){
for(j=0;j<100;j++)
{
;
}
}
}
//
void main(void)
{
unsigned char i, j;
init_devices();
//insert your functional code here...
while(1){
for(i=140; i>115; i--){
Servo[1] = i;
delay(100);
}
delay(255);
delay(255);
delay(255);
delay(255);
delay(255);
delay(255);
for(j=115; j<140; j++){
Servo[1] = j;
delay(100);
}
delay(255);
delay(255);
delay(255);
delay(255);
delay(255);
}
}
관리자 답변
안녕하세요? 반갑습니다.
예를 들어서 설명하죠.
소스 중에서,
for(i=140; i>115; i--){
Servo[1] = i;
delay(100);
}
라는 부분이 있지요?
Servo[1] = i; 라는 곳에서, i 값으로 서보의 위치가 결정되거든요.
Servo[2] = (140-i) + 115; 라고 주시면 반대로 돌아갈 것 같네요.
서보 모터의 원리는 아시죠? 강좌->AVR 강좌에서 서보모터 강좌를 참고하시면,
이유를 아실 수 있을 겁니다. PWM 주기를 반대로 주는 것이에요.
그 소스보다는 아래 소스를 보면 더욱 좋은 소스이니, 아래 소스를 고치시는 게 더 정밀하게 제어 가능할 겁니다.
- 아래 -
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=277
수고하세요.
>AVR MEGA 128 개발보드(AB-M128-B)를 현재 사용중인데요.
>N.T.C까페에 edukci 님께서 올리신 서보모터 제어소스에 대해
>좀 물어볼까 합니다.
>그분께서 올리신 소스 파일로는 C포트 2번핀에 연결된 서보모터가 좌우로 움직이게 되는데 C포트 3번핀에 그와 정 반대되는 움직임을 주려면 그 소스에 어떤 명령어를 추가하여야 하는지 가르쳐 주실수 있나요?
>제가 AVR을 처음 접해보고 C프로그래밍도 정말 많이 서툴러서 어찌해야될지 막막하네요.
>부탁 드립니다.^^
>
>아래는 그 분께서 올리신 소스자료 입니다.
>
>//ICC-AVR application builder : 2008-05-07 오후 11:19:12
>// Target : M128
>// Crystal: 16.000Mhz
>
>#include <iom128v.h>
>#include <macros.h>
>#include <stdio.h>
>
>#define SERVO_PORT PORTC
>
>#define Min_Ang 50
>#define Max_Ang 200
>
>//volatile unsigned int Tcount=0;
>volatile unsigned char T20ms=0; Tcount=0; Servo[8], num=1;
>
>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;
>}
>
>//TIMER0 initialize - prescale:128
>// WGM: Normal
>// desired value: 1mSec
>// actual value: 1.000mSec (0.0%)
>void timer0_init(void)
>{
> TCCR0 = 0x00; //stop
> ASSR = 0x00; //set async mode
> TCNT0 = 0x06; //set count
> OCR0 = 0xFA;
> TCCR0 = 0x04; //start timer
>}
>
>#pragma interrupt_handler timer0_ovf_isr:17
>void timer0_ovf_isr(void)
>{
> TCNT0 = 0x06; //reload counter value
> T20ms++;
> if(T20ms >= 20)
> {
> T20ms = 0;
> Tcount = 0;
> }
>}
>
>//TIMER2 initialize - prescale:8
>// WGM: Normal
>// desired value: 100uSec
>// actual value: 100.000uSec (0.0%)
>void timer2_init(void)
>{
> TCCR2 = 0x00; //stop
> TCNT2 = 0xEC; //setup
> OCR2 = 0x14;
> TCCR2 = 0x02; //start
>}
>#pragma interrupt_handler timer2_ovf_isr:11
>void timer2_ovf_isr(void)
>{
> TCNT2 = 0xEC; //reload counter value
> Tcount++;
>// for(num=0; num<2; num++)
>
> if(Servo[num]>Tcount)
> SERVO_PORT |= (0x01<<num);
> else SERVO_PORT &= (~(0x01<<num));
>
>}
>
>
>//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();
> timer0_init();
> timer2_init();
>
> MCUCR = 0x00;
> EICRA = 0x00; //extended ext ints
> EICRB = 0x00; //extended ext ints
> EIMSK = 0x00;
> TIMSK = 0x41; //timer interrupt sources
> ETIMSK = 0x00; //extended timer interrupt sources
> SEI(); //re-enable interrupts
> //all peripherals are now initialized
>}
>void delay(int cnt)
> {
> unsigned char i, j;
> for(i=0;i<cnt;i++){
> for(j=0;j<100;j++)
> {
> ;
> }
> }
>}
>//
>void main(void)
>{
> unsigned char i, j;
> init_devices();
> //insert your functional code here...
>
>while(1){
> for(i=140; i>115; i--){
> Servo[1] = i;
> delay(100);
> }
> delay(255);
> delay(255);
> delay(255);
> delay(255);
> delay(255);
> delay(255);
> for(j=115; j<140; j++){
> Servo[1] = j;
> delay(100);
> }
> delay(255);
> delay(255);
> delay(255);
> delay(255);
> delay(255);
>
>
>}
>
>}
>
>
|
||||
| 2281 | 답변완료ATMEGA2561 에 관한 질문 | 오승만 | 2009-01-31 | 1,351 |
|
수고하십니다. 얼마전에도 비슷한 질문을 드린적이 있는데요
AVR Studio4 에서 컴파일 된 hex파일을 다운로드 하려고 하는데 문제가 발생됩니다.
일전에는 페러럴 방식으로 하려했는데 AVR Studio에서는 안되는거 같아
이번에 USB방식으로 다시 구입하였습니다.
그런데 이번에도 알 수 없는 에러가 발생하여 질문을 드립니다.
첨부파일로 에러 사진을 올릴테니 도움을 주셨으면 합니다.
관리자 답변
안녕하세요? 고객님,
저희 NewTC 제품을 이용하여 주셔서 감사합니다.
그리고, 불편을 끼쳐 드려서 죄송합니다.
USBISP가 2561에서 간혹 말씀하시는 문제가 있는 것을 저번주 쯤에 발견하였습니다. ATMEGA128에서는 전혀 발생하지 않는 데, 일부 AVR에서 발생하는 것으로 발견되었습니다. 거의 일어나지 않는 경우라서, 발견이 안되었었는 데, 저번주에 테스트하다 하나가 발견되어, USBISP의 펌웨어를 수정하였습니다.
본사로 보내주시면, USBISP 펌웨어 업그레이드를 무료로 해드리도록 하겠습니다.
가까운 우체국택배나 CJ택배(1588-5353)를 이용하시면 편리합니다.
택배비는 본사에서 모두 부담합니다.
불편을 끼쳐 드려서 죄송합니다.
감사합니다.
>수고하십니다. 얼마전에도 비슷한 질문을 드린적이 있는데요
>
>AVR Studio4 에서 컴파일 된 hex파일을 다운로드 하려고 하는데 문제가 발생됩니다.
>
>일전에는 페러럴 방식으로 하려했는데 AVR Studio에서는 안되는거 같아
>
>이번에 USB방식으로 다시 구입하였습니다.
>
>그런데 이번에도 알 수 없는 에러가 발생하여 질문을 드립니다.
>
>첨부파일로 에러 사진을 올릴테니 도움을 주셨으면 합니다.
|
||||
| 2280 | 답변완료프로그래밍 질문사항 | 김희선 | 2009-01-31 | 1,438 |
|
안녕하세요.
어제(금요일) 오후에 방문하였던 김희선입니다. 어제 너무 시간을 많이 할애하시게끔 한 것 같아서 송구스럽고, 많은 도움 주셔서 정말 감사하게 생각합니다.
어제 구입한 부품을 이용해서 ATmega128-PC가 바로 uart통신을 하면서, 하이퍼터미널창에 test 글씨를 출력하게 하는 것 까지만 성공했네요.
RF 모듈에 문제가 생겨서 써 볼 수가 없었습니다. usb-uart와 RF모듈을 연결하고, RF모듈 4핀 부분 5V에 파워서플라이로 5V를 주고 컴퓨터와 연결하였는데, 자료실에서 RFmod전용 프로그램으로 connect해봐도 자꾸 문제가 있으니 설정을 고쳐보라는 창만 뜨네요...
이상한게 5V를 따로 안주면 usb-uart가 rx에 초록불이 들어와 있고, 5V를 인가하면 초록불이 꺼지면서 rfmod에서 CR1 led가 붉은불이 계속 깜빡입니다. 어떻게 해도 connect는 안되구요. 기본설정대로 boudrate 등을 맞춰주었는데 무슨 문제가 있는지 모르겠습니다. 첨언하자면 각 부품 메뉴얼에서 어느 위치의 led가 어떤 경우에 어떻게 깜빡이는지 쓰여 있었으면 좋겠어요~
그리고 자료실에서 testuart와 ex_adc소스를 짜집기 해보려 했는데, 일단 testuart는 잘 돌아가는걸 확인했습니다. 그런데 ex_adc를 iccavr로 써넣고 avr과 컴퓨터를 바로 uart로 연결해서 하이퍼터미널 연결을 하면, 해당포트가 다른 프로그램에 사용되고 있어서 연결할 수 없다고 나오네요. 원래 그런 소스인가요?
그리고 avr studio와 iccavr용 각각이라서 짜집기가 좀 어려운데, 헤더만 고쳐주면 되는 것인지... 궁금합니다~
감사합니다.
관리자 답변
안녕하세요?
AVR Studio + WINAVR로 하셨나 보네요.
ICCAVR V7으로 만든 ex_adc 소스를 다시 올려드립니다.
ADC 및 printf 하는 내용도 함께 들어 있습니다.
그리고, RFMOD 전압 인가시에 살짝쿵 쇼트되었나 봅니다.
모듈이 매우 fragile 하다고 해야 하나, 쇼트 등에 약한 부분이 있습니다.
앞으로 보강해야 할 점이라고 생각되지만, 일단
RF 모듈이 망가진 것 같습니다. RFMOD의 LED가 하나는 송신용, 하나는 수신용인데, 계속 리셋 걸리면서 초기 데이터를 날리는 것 같습니다.
그 RF 모듈을 본사로 보내 주시구요. A/S해 드리겠습니다.
앞으로 그런 부분들을 보완하도록 하겠습니다.
하지만, 전압 인가 등에 조심해서, 사용하면 아무 문제 없이 사용이 가능합니다.
보내드린 소스로 일단, 해보시구요.
질문 생기시면 바로바로 질문 주세요.
수고하세요.
>
>
>안녕하세요.
>어제(금요일) 오후에 방문하였던 김희선입니다. 어제 너무 시간을 많이 할애하시게끔 한 것 같아서 송구스럽고, 많은 도움 주셔서 정말 감사하게 생각합니다.
>
>어제 구입한 부품을 이용해서 ATmega128-PC가 바로 uart통신을 하면서, 하이퍼터미널창에 test 글씨를 출력하게 하는 것 까지만 성공했네요.
>
>RF 모듈에 문제가 생겨서 써 볼 수가 없었습니다. usb-uart와 RF모듈을 연결하고, RF모듈 4핀 부분 5V에 파워서플라이로 5V를 주고 컴퓨터와 연결하였는데, 자료실에서 RFmod전용 프로그램으로 connect해봐도 자꾸 문제가 있으니 설정을 고쳐보라는 창만 뜨네요...
>이상한게 5V를 따로 안주면 usb-uart가 rx에 초록불이 들어와 있고, 5V를 인가하면 초록불이 꺼지면서 rfmod에서 CR1 led가 붉은불이 계속 깜빡입니다. 어떻게 해도 connect는 안되구요. 기본설정대로 boudrate 등을 맞춰주었는데 무슨 문제가 있는지 모르겠습니다. 첨언하자면 각 부품 메뉴얼에서 어느 위치의 led가 어떤 경우에 어떻게 깜빡이는지 쓰여 있었으면 좋겠어요~
>
>그리고 자료실에서 testuart와 ex_adc소스를 짜집기 해보려 했는데, 일단 testuart는 잘 돌아가는걸 확인했습니다. 그런데 ex_adc를 iccavr로 써넣고 avr과 컴퓨터를 바로 uart로 연결해서 하이퍼터미널 연결을 하면, 해당포트가 다른 프로그램에 사용되고 있어서 연결할 수 없다고 나오네요. 원래 그런 소스인가요?
>그리고 avr studio와 iccavr용 각각이라서 짜집기가 좀 어려운데, 헤더만 고쳐주면 되는 것인지... 궁금합니다~
>
>감사합니다.
|
||||
| 2279 | 답변완료stk500 장비가 인식안된다고 합니다. | 김민수 | 2009-01-30 | 1,445 |
|
홈페이지에 있던 mega.c를 iccavr을 이용하여 메뉴얼대로 굽고 있었는데요
오실로스코프로 portA 0번핀 보려고 했는데 AD-USBISP-L에 녹색불이 안들어오고
D3 빨간불만 점멸되네요. 또 해당 핀을 오실로스코프로 찍어봐도 반응이 없네요
AB-M128에 AM-128PL 함께있는것으로 실습하고 있습니다.
원래 초기에 아무것도 안했을때는 자체적으로 보드와 CPU옆 LED에 불이 들어왔는데 지금은 아무것도 안들어오네요
관리자 답변
안녕하세요...고객님...
저희 NewTC 제품을 이용해 주셔서 감사합니다.
USBISP 드라이브 설치... 장치관리자에서 USBISP포트가 제대로 인식되는지...
ICCAVR에서 STK500프로토콜 연결은 제대로 했는지......장치 관리자에서 인식되는 포트 번호랑 ICCAVR에서의 USB포트는 일치시키셨는지.... 다시 한번 확인해 주세요. 확인하시고 문제 있으면 다시 질문 주세요.
감사합니다.
>홈페이지에 있던 mega.c를 iccavr을 이용하여 메뉴얼대로 굽고 있었는데요
>오실로스코프로 portA 0번핀 보려고 했는데 AD-USBISP-L에 녹색불이 안들어오고
>D3 빨간불만 점멸되네요. 또 해당 핀을 오실로스코프로 찍어봐도 반응이 없네요
>AB-M128에 AM-128PL 함께있는것으로 실습하고 있습니다.
>원래 초기에 아무것도 안했을때는 자체적으로 보드와 CPU옆 LED에 불이 들어왔는데 지금은 아무것도 안들어오네요
|
||||
| 2278 | 답변완료전원공급릴레이보드에관하여 | 김기운 | 2009-01-30 | 1,363 |
|
안녕하세요
2.5v 공급전원 받아서 dc24v릴레이를 가동시키거나 plc 입력처리 할려고 합니다
어떤제품을 선정하여야하느지 또 어떻게 사용하여야하는지 구매방법은?
가격은얼말인지 납품일자는 몇일인지 궁금해서 문이드립니다
(주)하나에인텍
이사 김기운입니다
02-2619-8812
관리자 답변
안녕하세요..고객님..
저희 NewTC 제품을 이용해 주셔서 감사합니다.
저희 제품중 전원공급 릴레이보드는 DC 5V로 제어가 가능합니다.
즉 2.5V로는 구동되지 않습니다. 전원공급릴레이보드에 대한 자세한 내용은 링크연결해 드리겠습니다.
http://newtc.co.kr/product_AM-RB04-B.php
보시고 궁금한점이나 진행사항은 다시 Q&A에 올려주시면 자세하게 답변드리겠습니다.
감사합니다.
>안녕하세요
>2.5v 공급전원 받아서 dc24v릴레이를 가동시키거나 plc 입력처리 할려고 합니다
>어떤제품을 선정하여야하느지 또 어떻게 사용하여야하는지 구매방법은?
>가격은얼말인지 납품일자는 몇일인지 궁금해서 문이드립니다
>
>(주)하나에인텍
>이사 김기운입니다
>02-2619-8812
|
||||
| 2277 | 답변완료USB-ISP A/S 도착 했는데요 | 하식 | 2009-01-30 | 1,363 |
|
USBISP 두개를 사서 잘쓰다가 하나가 안되서 A/s를 보냈었고 이상이 없다고 전화주시고서는 다시 반송해 주셨는데요
똑같은 컴퓨터 컴파일러 포트에 물려서 테스트 하는데도 원래 되던건 잘되는데 a/s 갔다 온애는 여전히 안됩니다
뭔가 다른 설정 같은게 있나요
관리자 답변
안녕하세요...
저희가 이상이 없다고 한건 저희 환경에서 여러가지 테스트를 해서 이상이 없다는 것입니다. 물론 저희 환경은 가장 보편적으로 쓰는 환경입니다.
고객님께서 쓰시는 보더랑 USBISP를 같이 보내주셨으면 고객님의 환경에서 테스트가 가능했을 텐데 아쉽군요. 다시 고객님의 보드를 함께 보내주신다면 문제점 해결해 드리겠습니다.
감사합니다.
>USBISP 두개를 사서 잘쓰다가 하나가 안되서 A/s를 보냈었고 이상이 없다고 전화주시고서는 다시 반송해 주셨는데요
>똑같은 컴퓨터 컴파일러 포트에 물려서 테스트 하는데도 원래 되던건 잘되는데 a/s 갔다 온애는 여전히 안됩니다
>
>뭔가 다른 설정 같은게 있나요
|
||||
| 2276 | 답변완료아직도 동작이.... | 신은주 | 2009-01-30 | 1,427 |
|
delay 부분은 수정을 하였는데도 여전히 LED가 init상태에서 설정한 이후로 넘어가지를 않아요.
프로그램은 워낙 간단하여 더 이상 질문할 것은 없고.
시스템에 대해 궁금한점.
- 맨 처음 전원을 넣었을때 모든 LED 와 7세크먼트 데스트하더니 지금은 전원을 ON/Off 해봐도 그런동작을 안하네요. 현재는 전원을 넣으면 전에 다운로드했던 상태를 보여주고있어요.
- Reset 스위치를 눌러도 바로전 다운로드한 프로그램을 그대로 실행합니다.
처음 시스템에 전원을 넣어을경우와 Reset스위치를 누루면 사스템은 어떻게 동작하는것이 정상인지요.
관리자 답변
안녕하세요...
저희 NewTC 제품을 이용해 주셔서 감사합니다.
아마 타겟보드 설정이라든지 기타 설정에 문제가 있는것 같습니다.
전원을 넣었을때랑 리셋버튼을 눌렀을땐 마지막으로 라이팅 된 프로그램이 동작하게 되어있습니다. 제품이 처음 나갈때 들어있는 소스는 단지 저희가 테스트용으로 사용하는 것이므로 고객님께서 한번 프로그램 한 후엔 당연히 사라지게 됩니다.
보드를 가지고 직접 한번 찾아오시면 시원하게 해결될 텐데요....
감사합니다.
>delay 부분은 수정을 하였는데도 여전히 LED가 init상태에서 설정한 이후로 넘어가지를 않아요.
>프로그램은 워낙 간단하여 더 이상 질문할 것은 없고.
>
>시스템에 대해 궁금한점.
>- 맨 처음 전원을 넣었을때 모든 LED 와 7세크먼트 데스트하더니 지금은 전원을 ON/Off 해봐도 그런동작을 안하네요. 현재는 전원을 넣으면 전에 다운로드했던 상태를 보여주고있어요.
>- Reset 스위치를 눌러도 바로전 다운로드한 프로그램을 그대로 실행합니다.
>
>처음 시스템에 전원을 넣어을경우와 Reset스위치를 누루면 사스템은 어떻게 동작하는것이 정상인지요.
>
>
>
>
|
||||
| 2275 | 답변완료뒤로 넘겨져서 못보신거같아서 다시올립니다 | 이경호 | 2009-01-29 | 1,313 |
|
인터럽트 방식으로 했더니 잘 처리 되네요 감사합니다
이제 이문제에 대한 마지막 질문이 됐으면 하는 질문인데요
최종적으로 하고싶은게 AB - M 128pro-A v02 보드에서
스위치를 누르게되면 a나 b가 UART0번 (PORTE 0번과 1번핀)으로 전송되게하고
UART1번 (PORTD 2번과 3번핀)으로 a나 b가 들어오게되면 LED에 불이들어오게 하려고 합니다.
알려주신 방법으로 두동작 모두를 한 프로그램에 넣고 실행시켜봐도 모두 잘동작하는것을 확인했습니다.
이제 UART0번하고 UART1번 사이를 블루투스로 연결해서 하려고하는데요
각각 블루투스의 RX, TX를 AVR에 TX,RX 연결을 해놓고 블루투스간에 연결도 해놔서 status에 불도 들어오게 됐습니다
근데 스위치를 눌러도 아무런 반응이 없네요
프로그램을 잘못짠건가요? 아니면 뭐가 잘못 한건가요?
블루투스 모델은 firmtech 사의 FB755AC입니다.
아래는 소스입니다.
#include<iom128v.h>
#include <macros.h>
#pragma interrupt_handler USART1_TX_isr:33
char GRVch;
void USART1_TX_isr(void)//-----------UART1 TX start
{
GRVch = UDR1;
UCSR1A &= 0x00;
}//---------------------------------------UART1 TX end
void tran(char c)//--------------------------UART0 RX start
{
while ( (UCSR0A&0x20) == 0) ; // UDRE, data register empty
UDR0 = c;
}//-------------------------------------------UART0 RX end
void uart0_init(void)
{
UCSR0B = 0x00; //disable while setting baud rate
UCSR0A = 0x00;
UCSR0C = 0x06;
UBRR0H = 0; //set baud rate hi
UBRR0L = 103; //set baud rate lo
UCSR0B = 0x18;
}
void uart1_init(void)
{
UCSR1B = 0x00; //disable while setting baud rate
UCSR1A = 0x00;
UCSR1C = 0x06;
UBRR1H = 0; //set baud rate hi
UBRR1L = 103; //set baud rate lo
UCSR1B = 0x98;
}
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
XDIV = 0x00; //xtal divider
XMCRA = 0x00; //external memory
uart0_init();
uart1_init();
MCUCR = 0x00;
EICRA = 0x00; //extended ext ints
EICRB = 0x00; //extended ext ints
EIMSK = 0x00;
TIMSK = 0x00; //timer interrupt sources
ETIMSK = 0x00; //extended timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
int main(void)
{
init_devices();
DDRG = 0x03;
while(1) //--------------------------------while(1)start
{
if( PING & 0x04 ) //-------------------------UART0 S/W input
{
tran('a');
}
if( PING & 0x08 )
{
tran('b');
} //---------------------------------------------UART0 S/W input
if( (GRVch =='a') ||(GRVch=='A') ) //----------------UART1 S/W output
{
PORTG = 0x01;
}
if( (GRVch =='b') || (GRVch=='B') )
{
PORTG = 0x02;
}//--------------------------------------------------UART1 S/W output
}//------------------------------while(1) end
return 0;
}
관리자 답변
안녕하세요?
잘 되었다니, 다행입니다.
블루투스를 사용하실 경우에 패어링이라는 작업을 하여야 합니다.
master, slave를 설정하고, 그에 맞게 서로 ID를 맞춰줘서 연결을 한 후에,
데이터를 송수신 할 수 있습니다. 기본적으로, 데이터 송수신 전에 처리해야 할 일들이 많다는 말입니다.
그런 작업이 전혀 안되어 있어서, 안된 것 같습니다.
아래 예제를 참고하시면 좋겠네요.
- 펌테크의 블루투스 모듈 중 하나이 FB155BC 이용하는 예제입니다. -
http://cafe.naver.com/newtc/177
그리고, 본사의 AM-RFMOD라는 모듈을 사용하면, 그런 수고 없이,
연결해놓고, 바로 데이터 송수신 할 수 있습니다. 그냥, 유선처럼 쓸 수가 있게 되지요.
수고하세요.
>인터럽트 방식으로 했더니 잘 처리 되네요 감사합니다
>이제 이문제에 대한 마지막 질문이 됐으면 하는 질문인데요
>
>최종적으로 하고싶은게 AB - M 128pro-A v02 보드에서
>
>스위치를 누르게되면 a나 b가 UART0번 (PORTE 0번과 1번핀)으로 전송되게하고
>UART1번 (PORTD 2번과 3번핀)으로 a나 b가 들어오게되면 LED에 불이들어오게 하려고 합니다.
>
>알려주신 방법으로 두동작 모두를 한 프로그램에 넣고 실행시켜봐도 모두 잘동작하는것을 확인했습니다.
>
>이제 UART0번하고 UART1번 사이를 블루투스로 연결해서 하려고하는데요
>
>각각 블루투스의 RX, TX를 AVR에 TX,RX 연결을 해놓고 블루투스간에 연결도 해놔서 status에 불도 들어오게 됐습니다
>
>근데 스위치를 눌러도 아무런 반응이 없네요
>프로그램을 잘못짠건가요? 아니면 뭐가 잘못 한건가요?
>
>블루투스 모델은 firmtech 사의 FB755AC입니다.
>
>아래는 소스입니다.
>
>#include<iom128v.h>
>#include <macros.h>
>
>#pragma interrupt_handler USART1_TX_isr:33
>
>
>char GRVch;
>
>void USART1_TX_isr(void)//-----------UART1 TX start
>{
>
>GRVch = UDR1;
>
>UCSR1A &= 0x00;
>
>}//---------------------------------------UART1 TX end
>
>void tran(char c)//--------------------------UART0 RX start
>{
> while ( (UCSR0A&0x20) == 0) ; // UDRE, data register empty
>
> UDR0 = c;
>
>}//-------------------------------------------UART0 RX end
>
>
>void uart0_init(void)
>{
>UCSR0B = 0x00; //disable while setting baud rate
>UCSR0A = 0x00;
>UCSR0C = 0x06;
>UBRR0H = 0; //set baud rate hi
>UBRR0L = 103; //set baud rate lo
>UCSR0B = 0x18;
>}
>
>
>void uart1_init(void)
>{
>UCSR1B = 0x00; //disable while setting baud rate
>UCSR1A = 0x00;
>UCSR1C = 0x06;
>UBRR1H = 0; //set baud rate hi
>UBRR1L = 103; //set baud rate lo
>UCSR1B = 0x98;
>}
>
>
>void init_devices(void)
>{
>//stop errant interrupts until set up
>CLI(); //disable all interrupts
>XDIV = 0x00; //xtal divider
>XMCRA = 0x00; //external memory
>uart0_init();
>uart1_init();
>MCUCR = 0x00;
>EICRA = 0x00; //extended ext ints
>EICRB = 0x00; //extended ext ints
>EIMSK = 0x00;
>TIMSK = 0x00; //timer interrupt sources
>ETIMSK = 0x00; //extended timer interrupt sources
>SEI(); //re-enable interrupts
>//all peripherals are now initialized
>}
>
>int main(void)
>{
>
>init_devices();
>DDRG = 0x03;
>
>while(1) //--------------------------------while(1)start
>{
>
>if( PING & 0x04 ) //-------------------------UART0 S/W input
>{
>tran('a');
>}
>
>if( PING & 0x08 )
>{
>tran('b');
>} //---------------------------------------------UART0 S/W input
>
>if( (GRVch =='a') ||(GRVch=='A') ) //----------------UART1 S/W output
>{
>PORTG = 0x01;
>}
>if( (GRVch =='b') || (GRVch=='B') )
>{
>PORTG = 0x02;
>}//--------------------------------------------------UART1 S/W output
>
>
>}//------------------------------while(1) end
>
>return 0;
>}
>
|
||||
| 2274 | 답변완료avr studio에서 m128L 퓨즈비트 설정 문의... | 김희선 | 2009-01-29 | 1,650 |
|
안녕하세요?
귀 회사에서 usb-isp를 구입하여 단품으로 구매한 128L 칩과 연결하였습니다.
avr studio에서 장치 인식까지는 성공하였는데, 프로그램을 써 넣어 보려고 하니
WARNING: FLASH byte address 0x0000 is 0x00 (should be 0x0C).. FAILED!
라는 에러가 뜨네요.
퓨즈비트 설정이 잘못되었나 해서 본 홈페이지 Q&A의 팁을 참고하였으나 여전히 안 되어 이렇게 문의드립니다.
참고로 XTAL1에 4MHz 오실레이터 연결해 두었구요.
그래서 첨부파일과 같이 퓨즈비트를 설정하였는데 ... 문제가 발생합니다.
처음에 usb를 연결하고 connect를 누르면 퓨즈비트를 제대로 읽습니다.
그런데 퓨즈비트를 바꾸어서 write하면 첨부파일 2와 같은 에러가 납니다.
그 뒤로는 퓨즈비트 read하면 자꾸 퓨즈비트가 달라지던가 똑같은 에러가 나던가 하게 되네요. 왜 이런 것인지;;
프로그래밍 모드에서 주파수는 57.6kHz로도 해 보고 20kHz대로도 해 보았습니다만 별 다른 게 없네요.
퓨즈비트 설정이 잘못된 것인지? 아니면 하드웨어 연결이 잘못된 것인지 궁금하네요. 칩 erase나 read signature 등은 잘 됩니다.
조언 부탁드립니다^^
관리자 답변
안녕하세요...고객님...
저희 NewTC 제품을 이용해 주셔서 감사합니다.
usbisp랑 고객님께서 사용하시는 128L 칩을 포함한 기타 환경들을 저희 본사로 보내주시면 문제 해결해 드리겠습니다.
고객님께서 사용하시는 환경을 모르는 상황에선 답변의 범위가 너무 넓어 글로써 쓸 수가 없습니다. 직접 설계하신 보드라면 더더욱 직접 봐야지 문제점을 알수 있습니다. 직접 찾아오시기 불가능하시면 택배로 보내주세요. 택배로 보낼때에는 이 내용을 메모해서 보내주시면 보다 빨리 처리해 드릴수 있습니다.
감사합니다.
>
>
>안녕하세요?
>귀 회사에서 usb-isp를 구입하여 단품으로 구매한 128L 칩과 연결하였습니다.
>avr studio에서 장치 인식까지는 성공하였는데, 프로그램을 써 넣어 보려고 하니
>
>WARNING: FLASH byte address 0x0000 is 0x00 (should be 0x0C).. FAILED!
>
>라는 에러가 뜨네요.
>퓨즈비트 설정이 잘못되었나 해서 본 홈페이지 Q&A의 팁을 참고하였으나 여전히 안 되어 이렇게 문의드립니다.
>참고로 XTAL1에 4MHz 오실레이터 연결해 두었구요.
>그래서 첨부파일과 같이 퓨즈비트를 설정하였는데 ... 문제가 발생합니다.
>처음에 usb를 연결하고 connect를 누르면 퓨즈비트를 제대로 읽습니다.
>그런데 퓨즈비트를 바꾸어서 write하면 첨부파일 2와 같은 에러가 납니다.
>그 뒤로는 퓨즈비트 read하면 자꾸 퓨즈비트가 달라지던가 똑같은 에러가 나던가 하게 되네요. 왜 이런 것인지;;
>프로그래밍 모드에서 주파수는 57.6kHz로도 해 보고 20kHz대로도 해 보았습니다만 별 다른 게 없네요.
>
>퓨즈비트 설정이 잘못된 것인지? 아니면 하드웨어 연결이 잘못된 것인지 궁금하네요. 칩 erase나 read signature 등은 잘 됩니다.
>조언 부탁드립니다^^
|
||||
| 2273 | 답변완료avr-isp 에 대한 질문입니다. | 김재환 | 2009-01-29 | 1,338 |
|
avr-isp v02를 구입했는데요
제가 산 기판은 NT-A128 이라는 모델의 기판입니다. NTC의 기판이 아니라서요..
이 기판의 ISP가 AVR ISP에서 사용되는 6핀이랑, KANDA사의 10핀 ISP 콘넥터를 지원한다고 나와있습니다.
혹시 제가 구입한 ISP를 통해서 인식할 수 없나요?
구동해보니 ISP 드라이버를 깔고 실행했는데 기판과 피씨와의 연결이 안됩니다.
확인 좀 부탁드립니다.
관리자 답변
안녕하세요...고객님..
저희 NewTC 제품을 이용해 주셔서 감사합니다.
고객님께서 사용하시는 NT-A128 회로도를 보지 않는 한 뭐라고 단정 하기는 어렵습니다. NT-A128이 AVR ISP 표준을 따른단면 당연히 저희 USBISP로 다운로드가 가능합니다.
예전에 한 고객님께서 저희 USBISP로 도저히 다운로드가 안되어 직접 찾아오신 적이 있는데 그때 그 고객님께서 쓰시던 보더가 디바이스 마트에서 나온 보드였는데 그 보드는 특이하게 인에이블 칩을 하나 추가해서 자사 ISP로만 다운로드가 되게 되어 있는 경우도 보았습니다. 보드를 만든 회사에 문의해서 표준 ISP로 다운로드가 가능한지 먼저 물어보시는게 빠를것 같습니다.
아마도 그때의 보드가 고객님의 보드 같습니다. 그 보드에 본사의 ISP를 쓰시려면, 10핀중에서 N/C로 되어 있는 3번핀에 5V를 강제로 연결하여 넣어 주면 잘 동작할겁니다.
표준을 따른다면 MOSI, MISO, SCK, RST, GND핀만 제대로 연결하면 사용가능 합니다.
감사합니다.
>avr-isp v02를 구입했는데요
>제가 산 기판은 NT-A128 이라는 모델의 기판입니다. NTC의 기판이 아니라서요..
>이 기판의 ISP가 AVR ISP에서 사용되는 6핀이랑, KANDA사의 10핀 ISP 콘넥터를 지원한다고 나와있습니다.
>혹시 제가 구입한 ISP를 통해서 인식할 수 없나요?
>구동해보니 ISP 드라이버를 깔고 실행했는데 기판과 피씨와의 연결이 안됩니다.
>확인 좀 부탁드립니다.
|
||||
| 2272 | 답변완료USBISP 질문 | 김길남 | 2009-01-29 | 1,452 |
|
안녕하세요.
AD-USBISP를 가지고있는데요.
XP사용하고있는데 v02드라이버가 받아지지 않네요.
http://www.newtc.co.kr/download/AD-USBISP/AD-USBISP_V02_XP2KME98.zip
프로그램을 전송하려고하는데
AVRISP error entering programming mode라고 나오는데
드라이버문제 맞나해서요.
관리자 답변
안녕하세요...고객님..
저희 NewTC 제품을 이용해 주셔서 감사합니다.
http://www.newtc.co.kr/download/AD-USBISP/AD-USBISP_V02_XP2KME98_.zip
으로 링크 주소가 변경되었습니다.
감사합니다.
>안녕하세요.
>AD-USBISP를 가지고있는데요.
>XP사용하고있는데 v02드라이버가 받아지지 않네요.
>http://www.newtc.co.kr/download/AD-USBISP/AD-USBISP_V02_XP2KME98.zip
>
>프로그램을 전송하려고하는데
>AVRISP error entering programming mode라고 나오는데
>드라이버문제 맞나해서요.
|
||||
| 2271 | 답변완료프로그램실행이 잘 안되요. | 신은주 | 2009-01-29 | 1,432 |
|
귀사의ATMega128 개발보드 (AB-M128PRO-A)와 USB-ISPV02를 구입했습니다.
간단하게 보드상에 있는 PG0,PG LED와 AM-TL8 LED 모듈을 이용하여 LED On/Off를 테스트하고 싶어서 아래와 같이 코드하였습니다.
프로그램다운로딩이후에 LED모듈과 PG0,PG1에 불이 켜지고는 꺼지지가 않고 계속 On상태를 유지해요.
즉 main에서 init_device까지만 동작하고 그 이후는 동작을 안하는듯한데 어떻게 해결해야하는지요.
프로그램이랄것도 없지만 아래와 같이....
//ICC-AVR application builder : 2009-01-29 오후 3:08:21
// Target : M128
// Crystal: 16.000Mhz
#include <iom128v.h>
#include <macros.h>
void port_init(void)
{
PORTA = 0x00;
DDRA = 0x00;
PORTB = 0xff;
DDRB = 0xff;
PORTC = 0x00; //m103 output only
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;
PORTE = 0x00;
DDRE = 0x00;
PORTF = 0x00;
DDRF = 0x00;
PORTG = 0x03;
DDRG = 0x03; // 0,1 output_LED, 3,4 input_SW
}
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
XDIV = 0x00; //xtal divider
XMCRA = 0x00; //external memory
port_init();
MCUCR = 0x00;
EICRA = 0x00; //extended ext ints
EICRB = 0x00; //extended ext ints
EIMSK = 0x00;
TIMSK = 0x00; //timer interrupt sources
ETIMSK = 0x00; //extended timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
void delay(int cnt)
{
int i,j;
for(i=0; i<cnt; i++)
for(j=0; j,600;j++)
;
}
void main(void)
{
init_devices();
DDRG = 0x03;
DDRB = 0xff;
while(1)
{
PORTG = 0x03;
PORTB = 0xff;
delay(1000);
PORTG = 0x00;
PORTB = 0x00;
delay(1000);
}
}
관리자 답변
안녕하세요..고객님..
저희 NewTC 제품을 이용해 주셔서 감사합니다.
delay 소스에 문제가 있네요.^_^
void delay(int cnt)
{
int i,j;
for(i=0; i<cnt; i++)
for(j=0; j,600;j++)
;
}
for(j=0; j<600; j++) 이렇게 고쳐야 하지요. 즉 타이핑 실수를 해서 딜레이 간격이 너무 짧아 계속 켜져있는것처럼 보였던 겁니다.
하시다가 또 질문 있으면 언제라도 연락주세요.
감사합니다.
>귀사의ATMega128 개발보드 (AB-M128PRO-A)와 USB-ISPV02를 구입했습니다.
>간단하게 보드상에 있는 PG0,PG LED와 AM-TL8 LED 모듈을 이용하여 LED On/Off를 테스트하고 싶어서 아래와 같이 코드하였습니다.
>프로그램다운로딩이후에 LED모듈과 PG0,PG1에 불이 켜지고는 꺼지지가 않고 계속 On상태를 유지해요.
>즉 main에서 init_device까지만 동작하고 그 이후는 동작을 안하는듯한데 어떻게 해결해야하는지요.
>
>프로그램이랄것도 없지만 아래와 같이....
>
>
>//ICC-AVR application builder : 2009-01-29 오후 3:08:21
>// Target : M128
>// Crystal: 16.000Mhz
>
>#include <iom128v.h>
>#include <macros.h>
>
>void port_init(void)
>{
> PORTA = 0x00;
> DDRA = 0x00;
> PORTB = 0xff;
> DDRB = 0xff;
> PORTC = 0x00; //m103 output only
> DDRC = 0x00;
> PORTD = 0x00;
> DDRD = 0x00;
> PORTE = 0x00;
> DDRE = 0x00;
> PORTF = 0x00;
> DDRF = 0x00;
> PORTG = 0x03;
> DDRG = 0x03; // 0,1 output_LED, 3,4 input_SW
>}
>
>//call this routine to initialize all peripherals
>void init_devices(void)
>{
> //stop errant interrupts until set up
> CLI(); //disable all interrupts
> XDIV = 0x00; //xtal divider
> XMCRA = 0x00; //external memory
> port_init();
>
> MCUCR = 0x00;
> EICRA = 0x00; //extended ext ints
> EICRB = 0x00; //extended ext ints
> EIMSK = 0x00;
> TIMSK = 0x00; //timer interrupt sources
> ETIMSK = 0x00; //extended timer interrupt sources
> SEI(); //re-enable interrupts
> //all peripherals are now initialized
>}
>
>
>void delay(int cnt)
> {
> int i,j;
> for(i=0; i<cnt; i++)
> for(j=0; j,600;j++)
> ;
> }
>
>
>void main(void)
>{
> init_devices();
> DDRG = 0x03;
> DDRB = 0xff;
> while(1)
> {
> PORTG = 0x03;
> PORTB = 0xff;
> delay(1000);
> PORTG = 0x00;
> PORTB = 0x00;
> delay(1000);
> }
> }
>
>
|
||||
| 2270 | 답변완료Chip Programming Error | 초보자 | 2009-01-29 | 1,325 |
|
1. 어제의 답변 중에 다음과 같은 내용이 있었는데, AVR Studio 의 STK500 과 CodeVision 을 연결하는 방법을 알고 싶습니다.
2. 사소한 질문 하나 더 ... : USB 메모리는 화면 하단의 화살표를 클릭하여 제거하는데, USB-ISP 는 그냥 빼면 되나요?
감사합니다.
"코드비젼은 자체적으로 stk500을 지원안하니깐 avr studio의 stk500과 연결시켜야 하는데 연결은 시켰습니까?"
관리자 답변
아래 답변은 답변시 그 순간 ICCAVR로 어제 잘못 생각하고 답변한 것 같습니다.
다른 분들을 위하여 그쪽 답변은 수정하여 두었습니다.
코드 비전은 자체적으로 STK500을 지원합니다.
아래에 자세한 방법이 나와 있습니다.
- 아래 -
http://www.newtc.co.kr/board/view.php?id=qna&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=코드비전&select_arrange=headnum&desc=asc&no=5981
그리고, 2.xx버전의 경우 포트를 9번도 지원합니다. 제가 가지고 있는 버전은 2.03.9라는 데모 버전인데, COM16번까지 지원하네요.
하지만, 예전 1.25.x 버전인가는 COM6번인가까지만 지원하는 것으로 알고 있습니다. 사용하는 버전을 잘 확인한 후에, 포트를 맞춰서 사용하기 바랍니다.
USBISP도 물론 USB 디바이스 이므로, 화살표를 클릭하여 확인하고 빼는 것이 좋습니다. USB device는 모두 동일합니다. 그러나, USBISP 자체에는 바로 빼도 별 하자가 없습니다. 다만, 뺏다 끼웠다를 계속 그냥 확인 없이 반복하게 되면, 순간
PC는 이게 끼워진 건지, 빠진건지에 대한 개념을 잃어버려서 그냥 끼워져 있는 걸로 인식하고 있을 수도 있고, 심하면, 컴퓨터를 리부팅해야 할 수도 있습니다.
그냥 빼도 되지만, 가능하다면, 확인하고 빼는 것이 좋겠습니다.
수고하세요.
>1. 어제의 답변 중에 다음과 같은 내용이 있었는데, AVR Studio 의 STK500 과 CodeVision 을 연결하는 방법을 알고 싶습니다.
>
>2. 사소한 질문 하나 더 ... : USB 메모리는 화면 하단의 화살표를 클릭하여 제거하는데, USB-ISP 는 그냥 빼면 되나요?
>
>감사합니다.
>
>"코드비젼은 자체적으로 stk500을 지원안하니깐 avr studio의 stk500과 연결시켜야 하는데 연결은 시켰습니까?"
>
>
|
||||
| 2269 | 답변완료AM-SLCD216 질문 드립니다. | 최현준 | 2009-01-29 | 1,482 |
|
안녕하세요, LCD 출력에 관해서 질문 드립니다.
UART0으로 데이터를 받고 UART1에 LCD 를 연결해서 DATA 를 출력하려고 하는데, 설명서에 나오는 printf 를 사용했더니 출력이 되지 않습니다.
어떻게 해야 될까요??
감사합니다.
관리자 답변
안녕하세요? 고객님,
N.T.C 제품을 이용하여 주셔서 감사합니다.
printf 함수는 putchar 함수를 내부 함수로 사용합니다.
따라서, 현재는 아마도 UART0로 출력되고 있을겁니다.
아래 함수를 추가해 주면, printf 사용시 UART1로 출력될 겁니다.
printf와 scanf 함수가 하드웨어에 따라 다른 곳으로 출력할 수 있게 변경 가능하기 때문에, 생기는 메시지 이므로, 내부함수인 putchar와 getchar를 사용하는 환경에 맞게 적어주어야합니다.Option에서 target을 ATMega128(Please see NOTES)로 사용하세요.
- 아래 -
#include <stdio.h>
// printf 함수 사용시 추가할 것.
int putchar(char c)
{
while (((UCSR1A>>UDRE1)&0x01) == 0) ; // UDRE, data register empty
UDR1 = c;
return c;
}
// scanf 함수 사용시 추가할 것.
int getchar(void)
{
while ((UCSR1A & 0x80) == 0);
return UDR1;
}
수고하세요.
>
>안녕하세요, LCD 출력에 관해서 질문 드립니다.
>UART0으로 데이터를 받고 UART1에 LCD 를 연결해서 DATA 를 출력하려고 하는데, 설명서에 나오는 printf 를 사용했더니 출력이 되지 않습니다.
>어떻게 해야 될까요??
>
>감사합니다.
|
||||
