Q&A
| 번호 | 제목 | 작성자 | 등록일 | 조회 |
|---|---|---|---|---|
| 5883 | 답변완료코드비전에 관한 질문입니다. | 김성환 | 2010-11-17 | 1,265 |
|
다음 첨부된 파일을 보시고 딜레이를 어떻게 계산해야 하는지 좀 가르쳐주세요..
포트 인터럽트 센서가 어떤 것이며 어떻게 사용해야 하는지 설명해 주세요..
엔코더를 사용해서 딜레이를 계산할 수 있다고 들었는데 엔코더는 어떻게 사용하는 건지 좀 가르쳐 주세요..
포트 인터럽트 사용방법과 엔코더 사용방법 그리고 제가 첨부한 파일들을 통해 딜레이를 어떻게 계산해야 하는 건지 좀 가르쳐주세요..
저희는 LED 잔상 효과를 통해 문자열을 출력하려고 하는데 딜레이를 맞추는 방법을 몰라서 헤매고 있습니다..
가르쳐 주시면 참 감사하겠습니다..!!
정말 몇 일 밤까지 새며 했는데도 도저히 모르겠습니다.
가르쳐주세요..
관리자 답변
안녕하세요
죄송하지만 본사에서 판매하는 키트 및 예제코드 대해서는 써포트를 하지만,
진행하시는 프로젝트에는 써포트를 하지않고 있습니다.
시간을계산 목적으로 사용할때는 루트형태의 딜레이를 사용하지않습니다.
타이머를 사용합니다. 아래링크는 자료실에 있는 타이머 예제입니다.
http://www.newtc.co.kr/board/zboard.php?id=pds&select_arrange=headnum&desc=asc&page_num=15&selected=&exec=&sn=off&ss=on&sc=off&category=&keyword=%C5%B8%C0%CC%B8%D3
수고하세요
>다음 첨부된 파일을 보시고 딜레이를 어떻게 계산해야 하는지 좀 가르쳐주세요..
>
>포트 인터럽트 센서가 어떤 것이며 어떻게 사용해야 하는지 설명해 주세요..
>
>
>엔코더를 사용해서 딜레이를 계산할 수 있다고 들었는데 엔코더는 어떻게 사용하는 건지 좀 가르쳐 주세요..
>
>
>포트 인터럽트 사용방법과 엔코더 사용방법 그리고 제가 첨부한 파일들을 통해 딜레이를 어떻게 계산해야 하는 건지 좀 가르쳐주세요..
>
>
>저희는 LED 잔상 효과를 통해 문자열을 출력하려고 하는데 딜레이를 맞추는 방법을 몰라서 헤매고 있습니다..
>
>
>가르쳐 주시면 참 감사하겠습니다..!!
>
>정말 몇 일 밤까지 새며 했는데도 도저히 모르겠습니다.
>
>가르쳐주세요..
>
>
|
||||
| 5882 | 답변완료3축 가속도 센서모듈 AM-3AXIS-P 호환과 응답에 관하여 | 우순기 | 2010-11-17 | 1,266 |
|
학교에서 사용하는 보드가 .
휴인스사의 ARM926EJ-S 인데 .. 센서가 호환이 될까요 ?
만약 호환이 된다면
센서의 출력 신호는 어떤 형태로 나오나요
예를들어 . . 보드에 연결하고 센서를 움직였을때 핀으로 출력이 바로 나오는지 알고 싶습니다.
crudewind1@nate.com
관리자 답변
안녕하세요
http://newtc.co.kr/download/AM-3AXIS/AM-3AXIS-P.pdf
인가되는 전압은 5볼트입니다. 그리고 그안에 센서에 맞는 전압3.3볼트로 내려서 동작합니다.
축에 대한 가속도 값은 아날로그 0 ~ 3.3 볼트 사이값이 출력됩니다.
ARM926EJ-S ADC 를 가지고 있는지를 이칩의 IO 전압이 3.3 볼트 사용하는지 확인하신후
연결해서 사용하면 됩니다.
수고하세요
>학교에서 사용하는 보드가 .
>
>휴인스사의 ARM926EJ-S 인데 .. 센서가 호환이 될까요 ?
>
>만약 호환이 된다면
>
>센서의 출력 신호는 어떤 형태로 나오나요
>
>예를들어 . . 보드에 연결하고 센서를 움직였을때 핀으로 출력이 바로 나오는지 알고 싶습니다.
>
>crudewind1@nate.com
>
>
|
||||
| 5881 | 답변완료아래 uart 코드에 대해 다시한번 올립니다. | 박현철 | 2010-11-16 | 1,409 |
|
해더부분을 고쳤는데요. 또다른 에러가 납니다 확인좀 부탁드릴께요.
에러 :
C:\\iccv7avr\\bin\\imakew -f PROJECT.mak
iccavr -c -e -D__ICC_VERSION="7.20" -DATMega128 -l -g -MLongJump -MHasMul -MEnhanced -Wf-use_elpm ..\\..\\..\\..\\DOCUME~1\\room405\\바탕화~1\\박현철\\usb.c
!E C:\\DOCUME~1\\room405\\바탕화~1\\박현철\\usb.c(74): redeclaration of `putchar' previously declared at C:\\iccv7avr\\include\\stdio.h(18)
C:\\iccv7avr\\bin\\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1. Tue Nov 16 23:03:59 2010
코드
//ICC-AVR application builder : 2009-07-21 오후 5:03:53
// Target : M128
// Crystal: 16.000Mhz
//Option->System-> change CSTACK to 0xFF
//then printf will work on.
#include <iom128v.h>
#include <stdio.h>
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;
}
//UART0 initialize
// desired baud rate: 115200
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
UCSR0B = 0x00; //disable while setting baud rate
UCSR0A = 0x00;
UCSR0C = 0x06;
UBRR0L = 0x08; //set baud rate lo
UBRR0H = 0x00; //set baud rate hi
UCSR0B = 0x18;
}
//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();
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 getchar(void)
{
int in;
while ((UCSR0A & 0x80) == 0);
in = UDR0;
return in;
}
int putchar(int c)
{
while (((UCSR0A>>5)&0x01) == 0) ; // UDRE, data register empty
UDR0 = c;
return c;
}
//
void main(void)
{
char in;
init_devices();
//insert your functional code here...
printf("\\r\\nTEST");
while(1){
in = getchar();
//scanf("%c", &in);
switch(in){
case 'A' : printf("\\r\\nPressed A");
break;
case 'B' : printf("\\r\\nPressed B");
break;
case 'C' : printf("\\r\\nPressed C");
break;
case 'D' : printf("\\r\\nPressed D");
break;
default : //printf("\\r\\nPressed E~Z or other");
break;
}
}
}
(기본 예제입니다)
관리자 답변
compiler options 의 paths 내용을 모두 지우세요.
|
||||
| 5880 | 답변완료라인트레이서 소스 봐주세요 | 최승태 | 2010-11-16 | 1,297 |
|
#include <mega128.h>
#include <delay.h>
//#define MLB PORTD.0
//#define MLA PORTD.1
//#define MRB PORTD.2
//#define MRA PORTD.3
void main(void){
DDRB=0x0F; DDRD=0xFF;
delay_ms(1000);
while(1){
if (PINB.0)PORTD=0b0110; // Sensor=1LL Motor=CCW, CW
else if(PINB.3)PORTD=0b1001; // Sensor=4RR Motor=CW, CCW
else if(PINB.1)PORTD=0b0010; // Sensor=2L Motor=00, CW
else if(PINB.2)PORTD=0b1000; // Sensor=3R Motor=CW, 00
else PORTD=0b1010; // Motor=CW, CW
}
}
이렇게 소스를 짜서 했는데 가변저항을 돌려도 LED 불이 안들어오네요...
프로그램이 잘못된건가요 아님 망가진건가요??...
저는코드비젼을 사용하고있습니다
관리자 답변
안녕하세요? 고객님,
질문은 까페나 이곳 중에서 한 곳에만 남겨 주세요.
그리고, 하드웨어 구성도 없고, 무슨 내용인지 알 수가 없습니다.
자세히 질문하여 주시기 바랍니다.
FAQ에서 질문하기 요령이 있는 데, 요령을 한 번 읽어 주시기 바랍니다.
자세히 질문하여야 실질적인 답변이 가능합니다.
감사합니다.
>#include <mega128.h>
>#include <delay.h>
>//#define MLB PORTD.0
>//#define MLA PORTD.1
>//#define MRB PORTD.2
>//#define MRA PORTD.3
>
>void main(void){
> DDRB=0x0F; DDRD=0xFF;
> delay_ms(1000);
> while(1){
> if (PINB.0)PORTD=0b0110; // Sensor=1LL Motor=CCW, CW
> else if(PINB.3)PORTD=0b1001; // Sensor=4RR Motor=CW, CCW
> else if(PINB.1)PORTD=0b0010; // Sensor=2L Motor=00, CW
> else if(PINB.2)PORTD=0b1000; // Sensor=3R Motor=CW, 00
> else PORTD=0b1010; // Motor=CW, CW
> }
>}
>
>이렇게 소스를 짜서 했는데 가변저항을 돌려도 LED 불이 안들어오네요...
>프로그램이 잘못된건가요 아님 망가진건가요??...
>저는코드비젼을 사용하고있습니다
|
||||
| 5879 | 답변완료아~~ 답답합니다.ㅠㅠ | JinJin | 2010-11-16 | 1,301 |
|
avr 초보자인데요..
image craft를 이용해서 테스트 하고 있습니다.
사용하는건 atmega128 pro 제품이고요...
근데 다른건 다 좋은데...
printf로 값을 되돌려 받을때요...
첨부파일 처럼 되요... 하이퍼터미널 보면 달랑 이상한 문자 두 세개만 받아져요ㅠㅠ
여기 강좌(avr printf를 이용하여 디버깅 하기)대로 했거든요...
printf문도 함수 추가해서 문제 없겠다 싶을 정도로 했는데 어떻하죠??
관리자 답변
안녕하세요? 고객님
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
그 강좌에 보면 11.0592MHz를 시스템 클럭으로 사용하는 것으로 해서 되어 있습니다만,
현재 제품은 16MHz를 사용하고 있습니다. 따라서, 클럭이 틀리니까, 소스코드 중 uart 초기화 코드가 틀려지게 됩니다.
UART 강좌(컴파일러별)을 참고하시기 바랍니다.
거기 딸린 예제가 있으니, 그 예제를 보세요.
수고하세요.
>avr 초보자인데요..
>image craft를 이용해서 테스트 하고 있습니다.
>
>사용하는건 atmega128 pro 제품이고요...
>
>근데 다른건 다 좋은데...
>
>printf로 값을 되돌려 받을때요...
>
>첨부파일 처럼 되요... 하이퍼터미널 보면 달랑 이상한 문자 두 세개만 받아져요ㅠㅠ
>
>여기 강좌(avr printf를 이용하여 디버깅 하기)대로 했거든요...
>
>printf문도 함수 추가해서 문제 없겠다 싶을 정도로 했는데 어떻하죠??
|
||||
| 5878 | 답변완료라인트레이서 | 최승태 | 2010-11-16 | 1,276 |
|
제가 라인트레이서를 만들려고 AM-IRS4D, AM-CD2L 키트를 샀는데요 ㅠㅠ..
프로그램을 못짜서그런데 동영상처럼 가는 프로그램좀 올려주시면 안될까요 ㅠㅠ..
코드비젼으로 올려주시면 더욱 감사합니다
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
자료실->기존 자료실에 CD2L 관련된 예제가 있습니다.
검색하여 테스트 하여 보시기 바랍니다.
- 아래 -
http://www.newtc.co.kr/board/zboard.php?id=pds&select_arrange=headnum&desc=asc&page_num=15&selected=&exec=&sn=off&ss=on&sc=off&category=&keyword=cd2l
IRS4D 관련도 마찬가지 입니다. 예제를 찾아서 돌려 보세요.
- 아래 -
http://www.newtc.co.kr/board/zboard.php?id=pds&select_arrange=headnum&desc=asc&page_num=15&selected=&exec=&sn=off&ss=on&sc=off&category=&keyword=IRS4D
소스는 직접 수정하여 써야 합니다.
소스를 못짠다고 남한테 의존적인 태도는 좋지 않습니다.
본사에서는 각 모듈의 예제는 제공하여 드리고, 강좌->동영상 강좌를 자세히 보시면서 보면, 예제를 설명까지 해 드리고 있습니다. 강좌를 보고, 꼭 공부하여 하시기 바랍니다.
청년 학생들 정도라면, 이틀 정도만 밤새서 공부하면 충분히 만들어 낼 수 있습니다.
강좌를 보고 C 언어를 이해하는 분이라면, 하루만에도 하겠지요.
인생에서 지금이 정말 마지막 좋은 기회일 수도 있습니다.
열심히 노력해서 꼭 열매를 따시기 바랍니다.
하다가 하다가 안되면 하시다가 잘 안되시면, Q&A로 질문 올려 주세요.
감사합니다.
>제가 라인트레이서를 만들려고 AM-IRS4D, AM-CD2L 키트를 샀는데요 ㅠㅠ..
>
>프로그램을 못짜서그런데 동영상처럼 가는 프로그램좀 올려주시면 안될까요 ㅠㅠ..
>
>코드비젼으로 올려주시면 더욱 감사합니다
|
||||
| 5877 | 답변완료128 질문입니다.. | 전헌섭 | 2010-11-16 | 1,255 |
|
제가 완전 초보라 이렇게 질문드립니다.
선배한테 ATMEGA128 키트를 받았는데, 전원을 꽂지 않고 컴퓨터 유에스비에만
연결해도 전원이 들어가게 되어있네요..
이거 다시 전원 콘센트로 공급받는것으로 바꾸는 방법이 궁금해요..
모터돌릴거라 출력이 있어야 할듯해서요 .. 부탁드립니다!
관리자 답변
안녕하세요
ATMEGA128 키트에는 USB 단자가 없습니다.
ATMEGA128 키트에 있는 아탑터잭에 전원을 8~12 볼트 를 인가하면됩니다.
USB로 된것은 다운로드 같아 보입니다.
아랭링크 메뉴얼은 보시면 USB 전원으로 보드를 동작시키는 방법에 대해 나와 있습니다.
그걸 번대로 하시면 됩니다.
http://newtc.co.kr/product_AD-USBISP-L.php
정확한 제품 명칭을 적어 주시길 바랍니다.
수고하세요
> 제가 완전 초보라 이렇게 질문드립니다.
>
>선배한테 ATMEGA128 키트를 받았는데, 전원을 꽂지 않고 컴퓨터 유에스비에만
>
>연결해도 전원이 들어가게 되어있네요..
>
>이거 다시 전원 콘센트로 공급받는것으로 바꾸는 방법이 궁금해요..
>
>모터돌릴거라 출력이 있어야 할듯해서요 .. 부탁드립니다!
|
||||
| 5876 | 답변완료코드비젼 질문이요 | 박양우 | 2010-11-16 | 1,419 |
|
KR - DL 라인트레이서 구매자입니다.
코드비젼을 써서 씨디의 예제 소스를 넣으려 하는데요
계속 ICCAVR 만 호환된다고 합니다
어떤건지좀 알려주세요
관리자 답변
안녕하세요? 고객님,
컴파일러마다 약간씩, 소스의 내용이 바뀝니다.
예를 들어서, include 하는 헤더 파일 이름이라던가,
ICCAVR에서는
#include <iom16v.h>
#include <macros.h>
이렇게 되는 것이, 코드비전에서는
#include <mega16.h>
#include <delay.h>
#include <stdio.h>
이렇게 하시면 되는 거죠.
코드비전에서 ICCAVR용 소스를 쓰려면,
ICCAVR 소스의 init_devices() 함수 안에서 cli(); 나 sei(); 를 그냥
//로 주석처리하여 막아주시면 되요. 사용 안되도록요.
나머지 타이머나 이런 것들은 그 소스에는 없으니까, 그냥 쓰시면 되겠네요.
printf는 내장함수 별도 선언 없이 그냥 사용하시면 되구요.
컴파일러마다 달라지는 부분은 매번 고쳐 쓰면 되는 데, 달라지는 부분들은
강좌->AVR 강좌에서 컴파일러별 UART 강좌를 참고하시면 되겠네요.
http://www.newtc.co.kr/board/view.php?id=mega128_lecture&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=101
수고하세요.
>KR - DL 라인트레이서 구매자입니다.
>
>코드비젼을 써서 씨디의 예제 소스를 넣으려 하는데요
>
>계속 ICCAVR 만 호환된다고 합니다
>
>어떤건지좀 알려주세요
|
||||
| 5875 | 답변완료스텝모터 9kg급 구동에 관한 질문입니다. | 김지훈 | 2010-11-16 | 1,312 |
|
atmega128과 AM-MS2를 이용해서 스텝모터를 제어하고 있습니다.
다름이 아니라 ADC를 한 결과값을 가지고
스텝모터를 제어하고 있습니다.
ADC를 하지 않고 스텝모터만 제어하면 제대로 돌아가지만
ADC와 함께 하면 스텝모터가 제대로 돌아가지 않습니다.
딜레이 주는 시간을 수정하면 만족할 만큼은 아니지만 돌아가는 때가 있는 걸로 봐선
딜레이 시간이 문제인 듯 한데 어떻게 하면 제대로 될까요?
AM-MS2에는 SMPS에서 12V 2A 선을 물려줬습니다.
//////////////////
void stepMotor(int dir, int delay_ms){
static int stepleft = 0, stepright = 0;
int i;
for(i=0; i<16; i++){
stepright = RIGHTmotorOneClock(stepright, dir);
stepleft = LEFTmotorOneClock(stepleft, dir);
_delay_ms(60);
MOTOR_PORT = stepleft|stepright;
}
}
////////////////
관리자 답변
안녕하세요
자세한 내용은 모르지만, 딜레이 문제는 아니듯 보입니다.
모터에 관한 루틴을 빼면 ADC만 하면 정상적으로 동작하는지요?
ADC와 모터관련 루틴이 서로 안맞는듯합니다.
수고하세요
>atmega128과 AM-MS2를 이용해서 스텝모터를 제어하고 있습니다.
>
>다름이 아니라 ADC를 한 결과값을 가지고
>스텝모터를 제어하고 있습니다.
>
>ADC를 하지 않고 스텝모터만 제어하면 제대로 돌아가지만
>ADC와 함께 하면 스텝모터가 제대로 돌아가지 않습니다.
>
>딜레이 주는 시간을 수정하면 만족할 만큼은 아니지만 돌아가는 때가 있는 걸로 봐선
>딜레이 시간이 문제인 듯 한데 어떻게 하면 제대로 될까요?
>
>
>AM-MS2에는 SMPS에서 12V 2A 선을 물려줬습니다.
>
>
>//////////////////
>void stepMotor(int dir, int delay_ms){
> static int stepleft = 0, stepright = 0;
> int i;
> for(i=0; i<16; i++){
> stepright = RIGHTmotorOneClock(stepright, dir);
> stepleft = LEFTmotorOneClock(stepleft, dir);
> _delay_ms(60);
> MOTOR_PORT = stepleft|stepright;
> }
>}
>////////////////
>
|
||||
| 5874 | 답변완료RF통신 모듈을 이용한 UART 수신 코드가 작동이 안됩니다. | 박현철 | 2010-11-15 | 1,428 |
|
이 소스를 넣어서 F9를 누르면
E .\\..\\..\\..\\..\\DOCUME~1\\room405\\바탕화~1\\파일\\cola.c(8): cannot include source file "iom128.h"; file not found
C:\\iccv7avr\\bin\\imakew -f KOREA.mak
iccavr -c -e -D__ICC_VERSION="7.20" -DATMega128 -l -g -MLongJump -MHasMul -MEnhanced -Wf-use_elpm ..\\..\\..\\..\\DOCUME~1\\room405\\바탕화~1\\파일\\cola.c
!E C:\\DOCUME~1\\room405\\바탕화~1\\파일\\cola.c(8): cannot include source file "iom128.h"; file not found
C:\\iccv7avr\\bin\\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1. Mon Nov 15 23:08:54 2010
에러가 납니다. 왜 이렇게 나는지 알려주세요.
(* 보드는 KD-128 pro 완제입니다.)
(소스자료)
//ICC-AVR application builder : 2009-07-21 오후 5:03:53
// Target : M128
// Crystal: 16.000Mhz
//Option->System-> change CSTACK to 0xFF
//then printf will work on.
#include <iom128.h>
#include <stdio.h>
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;
}
//UART0 initialize
// desired baud rate: 115200
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
UCSR0B = 0x00; //disable while setting baud rate
UCSR0A = 0x00;
UCSR0C = 0x06;
UBRR0L = 0x08; //set baud rate lo
UBRR0H = 0x00; //set baud rate hi
UCSR0B = 0x18;
}
//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();
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 getchar(void)
{
int in;
while ((UCSR0A & 0x80) == 0);
in = UDR0;
return in;
}
int putchar(int c)
{
while (((UCSR0A>>5)&0x01) == 0) ; // UDRE, data register empty
UDR0 = c;
return c;
}
//
void main(void)
{
char in;
init_devices();
//insert your functional code here...
printf("\\r\\nTEST");
while(1){
in = getchar();
//scanf("%c", &in);
switch(in){
case 'A' : printf("\\r\\nPressed A");
break;
case 'B' : printf("\\r\\nPressed B");
break;
case 'C' : printf("\\r\\nPressed C");
break;
case 'D' : printf("\\r\\nPressed D");
break;
default : //printf("\\r\\nPressed E~Z or other");
break;
}
}
}
관리자 답변
안녕하세요
#include <iom128.h>
이런 헤더는 없습니다.
#include <iom128v.h> 수정후 컴파일 해 보시길 바랍니다.
수고하세요
>이 소스를 넣어서 F9를 누르면
>E .\\..\\..\\..\\..\\DOCUME~1\\room405\\바탕화~1\\파일\\cola.c(8): cannot include source file "iom128.h"; file not found
>C:\\iccv7avr\\bin\\imakew -f KOREA.mak
> iccavr -c -e -D__ICC_VERSION="7.20" -DATMega128 -l -g -MLongJump -MHasMul -MEnhanced -Wf-use_elpm ..\\..\\..\\..\\DOCUME~1\\room405\\바탕화~1\\파일\\cola.c
>!E C:\\DOCUME~1\\room405\\바탕화~1\\파일\\cola.c(8): cannot include source file "iom128.h"; file not found
>C:\\iccv7avr\\bin\\imakew.exe: Error code 1
>Done: there are error(s). Exit code: 1. Mon Nov 15 23:08:54 2010
>
>에러가 납니다. 왜 이렇게 나는지 알려주세요.
>(* 보드는 KD-128 pro 완제입니다.)
>
>(소스자료)
>//ICC-AVR application builder : 2009-07-21 오후 5:03:53
>// Target : M128
>// Crystal: 16.000Mhz
>
>//Option->System-> change CSTACK to 0xFF
>//then printf will work on.
>
>#include <iom128.h>
>#include <stdio.h>
>
>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;
>}
>
>//UART0 initialize
>// desired baud rate: 115200
>// char size: 8 bit
>// parity: Disabled
>void uart0_init(void)
>{
> UCSR0B = 0x00; //disable while setting baud rate
> UCSR0A = 0x00;
> UCSR0C = 0x06;
> UBRR0L = 0x08; //set baud rate lo
> UBRR0H = 0x00; //set baud rate hi
> UCSR0B = 0x18;
>}
>
>//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();
>
> 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 getchar(void)
>{
> int in;
> while ((UCSR0A & 0x80) == 0);
> in = UDR0;
> return in;
>}
>
>int putchar(int c)
>{
> while (((UCSR0A>>5)&0x01) == 0) ; // UDRE, data register empty
>
> UDR0 = c;
> return c;
>}
>
>//
>void main(void)
>{
> char in;
> init_devices();
>
> //insert your functional code here...
> printf("\\r\\nTEST");
> while(1){
> in = getchar();
> //scanf("%c", &in);
> switch(in){
> case 'A' : printf("\\r\\nPressed A");
> break;
> case 'B' : printf("\\r\\nPressed B");
> break;
> case 'C' : printf("\\r\\nPressed C");
> break;
> case 'D' : printf("\\r\\nPressed D");
> break;
> default : //printf("\\r\\nPressed E~Z or other");
> break;
> }
> }
>}
>
|
||||
| 5873 | 답변완료자이로센서를이용해 각도구하기! | 김민하 | 2010-11-15 | 1,320 |
|
안녕하세요~
자이로센서를 사용해 각도를 구하고 싶어서 본 회사의 자이로센서를 구입해 사용하고 있습니다.
AM-GYRO-P V02를 사용하고 있는데요~ x, z를 측정하는 센서로 구입했습니다.
자이로센서로 각도를 측정하고, 그 각도로 모터를 돌리는 프로그램을 구현하고 싶어 이곳저곳 찾고 있는 중에 본 홈페이지에[자이로센서로 각도구하기]라는 예제소스를 제공해 주셨길래 봤는데욧~
그 프로그램이 컴파일러 ICCAVR을 이용하는 예제같은데,
제가 사용하는 source insight라는 컴파일러로 .hex파일을 만들려고 하니까 잘 안되네요.
혹시 사용하는 방법이 어떻게 되는지 알 수 있을까요?
그리고 제가 사용하는 센서는 x,z 축의 각도 중에 z축의 각도를 읽어내고 싶은데
프로그램 해석능력이 좀 떨어져 잘 모르겠네요,, 조언 좀 부탁드립니다.
관리자 답변
안녕하세요
아래링크는 참고하시 하세요.
http://www.newtc.co.kr/board/view.php?id=faq&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=42
위 링크에서 제공되는 코드눈 x축에 대한 내용입니다. z축에 대한 것은 ADC 에 채널만 변경하면 z축에 대한 값을 읽을 수 있습니다.
죄송하지만 제공되는 예제를 다른 컴파일러로 따로 변환해서 배포는 하지 않습니다.
위 코드중 이해 안가시는 부분에 대한 내용을 첨부해서 질문을 해주시면 됩니다.
수고하세요
>안녕하세요~
>자이로센서를 사용해 각도를 구하고 싶어서 본 회사의 자이로센서를 구입해 사용하고 있습니다.
>AM-GYRO-P V02를 사용하고 있는데요~ x, z를 측정하는 센서로 구입했습니다.
>자이로센서로 각도를 측정하고, 그 각도로 모터를 돌리는 프로그램을 구현하고 싶어 이곳저곳 찾고 있는 중에 본 홈페이지에[자이로센서로 각도구하기]라는 예제소스를 제공해 주셨길래 봤는데욧~
>그 프로그램이 컴파일러 ICCAVR을 이용하는 예제같은데,
>제가 사용하는 source insight라는 컴파일러로 .hex파일을 만들려고 하니까 잘 안되네요.
>혹시 사용하는 방법이 어떻게 되는지 알 수 있을까요?
>그리고 제가 사용하는 센서는 x,z 축의 각도 중에 z축의 각도를 읽어내고 싶은데
>프로그램 해석능력이 좀 떨어져 잘 모르겠네요,, 조언 좀 부탁드립니다.
|
||||
| 5872 | 답변완료dc 라인트레이스 킷트 | 박도선 | 2010-11-15 | 1,352 |
|
라인드레이스 킷드를 다 조립하고 프로그램까지 넣었습니다.
근데 적외선 센서 묘듈에 초록불이 들어 오지 않습니다.
이거 어떻게 해야 하나요. 사진도 하나 올려 봅니다.
2주째 고민 하고 있습니다. 가르쳐 주세요
관리자 답변
안녕하세요
죄송하지만, 이미지로 모든걸 알수 없습니다.
본사로 방문 또는 택배로 보내어 점검을 한번 받아 보시길
바랍니다.
수고하세요
>라인드레이스 킷드를 다 조립하고 프로그램까지 넣었습니다.
>근데 적외선 센서 묘듈에 초록불이 들어 오지 않습니다.
>이거 어떻게 해야 하나요. 사진도 하나 올려 봅니다.
>2주째 고민 하고 있습니다. 가르쳐 주세요
|
||||
| 5871 | 답변완료질문입니다!(急) | 김민하 | 2010-11-15 | 1,428 |
|
안녕하세요~
뉴티씨 제품을 애용하고 있는 avr캐초보 기계공학도 입니다.^^
각도의 변화를 이용해 모터를 제어하려는 목적으로 사용하고 있는데요~
현재 제가 사용하는 뉴티씨 제품은
MCU : AB-M128Pro-A
센서 : AM-GYRO-P V02 (자이로센서)
ISP : AVR ISP Pro AD-ISPPRO
컴파일러 : 소스인사이트
로 사용하고 있습니다.
다른것 보다, 사용하고 있는 자이로 센서의 테스트 프로그램을 사용해
센서를 테스트 해보고 싶은데, 어떻게 연결을 해서 사용해야하는지,
컴퓨터 - isp - mcu - 자이로센서 로 단순 연결해보니
연결이 되었지만, 어떤 특정한 신호가 출력되지 않았습니다.
설명서를 보니 특별히 연결하는 방법이 없어서 고심하던 끝에 글을 남겨봅니다.
따로 mcu에 소스를 코딩해야하나요?
좀 알려주세요~
관리자 답변
안녕하세요
타겟보드 >MCU : AB-M128Pro-A
>센서 : AM-GYRO-P V02 (자이로센서)
다운로드장비>ISP : AVR ISP Pro AD-ISPPRO
타겟보드에 있는 AVR에 c코드로 컴파일후 hex 파일를 다운로드 장비를 이용하여 AVR에 코드를
심어야합니다.
강좌 >> AVR강좌를 보시고 따라 해보시길 바랍니다.
수고하세요
>안녕하세요~
>뉴티씨 제품을 애용하고 있는 avr캐초보 기계공학도 입니다.^^
>각도의 변화를 이용해 모터를 제어하려는 목적으로 사용하고 있는데요~
>
>현재 제가 사용하는 뉴티씨 제품은
>
>MCU : AB-M128Pro-A
>센서 : AM-GYRO-P V02 (자이로센서)
>ISP : AVR ISP Pro AD-ISPPRO
>컴파일러 : 소스인사이트
>
>로 사용하고 있습니다.
>
>다른것 보다, 사용하고 있는 자이로 센서의 테스트 프로그램을 사용해
>센서를 테스트 해보고 싶은데, 어떻게 연결을 해서 사용해야하는지,
>컴퓨터 - isp - mcu - 자이로센서 로 단순 연결해보니
>연결이 되었지만, 어떤 특정한 신호가 출력되지 않았습니다.
>설명서를 보니 특별히 연결하는 방법이 없어서 고심하던 끝에 글을 남겨봅니다.
>따로 mcu에 소스를 코딩해야하나요?
>좀 알려주세요~
>
>
|
||||
| 5870 | 답변완료수리 잘 받았습니다. | 지유현 | 2010-11-15 | 1,359 |
|
아주 이쁘게 돌아왔어요~
감사합니다!
관리자 답변
안녕하세요, 뉴티씨입니다. 문의 내용 확인하였습니다. 추가 문의사항은 newtc@newtc.co.kr 또는 02-704-4774로 연락 주시기 바랍니다. 감사합니다.
|
||||
| 5869 | 답변완료타이머 카운터 질문입니다. | 김용승 | 2010-11-14 | 1,438 |
|
지금 사용하고있는 모듈은 AM128-pro 입니다.
이를 이용해 16bit 타이머 카운터를 사용하고 싶습니다.
15번 모드(FPWM 에서 반전출력을 갖고 TOP == OCRnA 를 사용하는 모드) 를 사용하려고 합니다
여기서 50ms 마다 , 파형을 발생시키고 싶습니다. 분주비는 256으로 하였고 OCR1A(TOP)의 값을 0x0C34 로 설정했습니다.
여기서 확인차 질문한가지 하겠습니다. 본 모듈의 system clk 이 16MHz로 설정되어 있는 것으로 아는데 f(clkI/O) 의 값을 16M로 넣어주는게 맞는것인지 알고싶습니다.
그리고 TCCR1A = 0x3F; TCCR1B = 0x1C;
DDRB.7 = 1; DDRB.6 =1; 로 설정해 주었습니다. 여기서 OC1B, OC1C를 동시에 출력으로 설정해 주었는데, 이 포트인 PB7, PB6에서 동시에 TCNT값이 OCR1B와 OCR1C에 일치되면 1로 set되고 TOP값이 되면 0으로 set되는지 알고싶습니다. 또한 파형도 동시에 PB7 PB6을 통해 나오는지 알고싶습니다. 책상에는 15번 PWM 모드의 경우 출력핀이 OC1B 라고만 써있기 때문에 여쭈어 보는 것입니다. 동시라는 말이 중요합니다. (주요 질문입니다.)
이 코드를 작성하기전에 가능성에 대해 여쭤봅니다 ㅠ
그리고 파형만 발생해서 다른 모듈에 pulse만 인가하려고 하는데
이런 경우에는 특별히 interrupt를 사용할 필요는 없는게 맞는지 알고싶습니다.
대부분의 책에... 타이머 카운터에대해서는 인터럽트와 연계 시키는 경우가 많아 확인하고싶습니다.
관리자 답변
안녕하세요
OC1B, OC1C 듀티비 관련레지스터는 tcnt 값이 카운터에 따라 일치할 경우 값이
출력됩니다.
출력되는 파형은 설정에 따라 반전신호로도 가능합니다.
파형출력 동시에도 가능합니다.
pwm 파형출력만으로도 가능합니다. 인터럽터루틴을 사용 안하셔도 됩니다.
수고하세요
>지금 사용하고있는 모듈은 AM128-pro 입니다.
>
>이를 이용해 16bit 타이머 카운터를 사용하고 싶습니다.
>
>15번 모드(FPWM 에서 반전출력을 갖고 TOP == OCRnA 를 사용하는 모드) 를 사용하려고 합니다
>
>여기서 50ms 마다 , 파형을 발생시키고 싶습니다. 분주비는 256으로 하였고 OCR1A(TOP)의 값을 0x0C34 로 설정했습니다.
>
>여기서 확인차 질문한가지 하겠습니다. 본 모듈의 system clk 이 16MHz로 설정되어 있는 것으로 아는데 f(clkI/O) 의 값을 16M로 넣어주는게 맞는것인지 알고싶습니다.
>
>그리고 TCCR1A = 0x3F; TCCR1B = 0x1C;
>DDRB.7 = 1; DDRB.6 =1; 로 설정해 주었습니다. 여기서 OC1B, OC1C를 동시에 출력으로 설정해 주었는데, 이 포트인 PB7, PB6에서 동시에 TCNT값이 OCR1B와 OCR1C에 일치되면 1로 set되고 TOP값이 되면 0으로 set되는지 알고싶습니다. 또한 파형도 동시에 PB7 PB6을 통해 나오는지 알고싶습니다. 책상에는 15번 PWM 모드의 경우 출력핀이 OC1B 라고만 써있기 때문에 여쭈어 보는 것입니다. 동시라는 말이 중요합니다. (주요 질문입니다.)
>이 코드를 작성하기전에 가능성에 대해 여쭤봅니다 ㅠ
>
>그리고 파형만 발생해서 다른 모듈에 pulse만 인가하려고 하는데
>이런 경우에는 특별히 interrupt를 사용할 필요는 없는게 맞는지 알고싶습니다.
>대부분의 책에... 타이머 카운터에대해서는 인터럽트와 연계 시키는 경우가 많아 확인하고싶습니다.
>
>
|
||||
