Q&A
| 번호 | 제목 | 작성자 | 등록일 | 조회 |
|---|---|---|---|---|
| 9593 | 답변완료PM-BT-UART-S,M 관련질문입니다:) | 정재현 | 2016-04-10 | 1,693 |
|
안녕하세요 아두이노로 PM-BT-UART-S,M 블루투스 통신을 사용하려고 합니다.
아두이노에서 설정을 통해 PIN을 모두 맞춘 상태로 페어링을 하려고 했는데 PM-BT-UART-M의 경우는 LED가 깜빡이지 않고 켜진 상태로 유지가 되는데 PM-BT-UART-S의 경우는 LED가 계속해서 깜빡이네요ㅠㅜ
혹시나 잘못 연결한 것인가 싶어서 AT+ORGL 초기화를 시켰고 다른 모듈로도 바꿔서 사용해 봤는데 여전히 PM-BT-UART-S만 계속해서 깜빡거리네요ㅠㅜ
어떤 문제 때문에 이럴까요?ㅠㅜ
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
켜진 상태 유지라면 다른 블루투스 슬레이브장치와 PIN과 통신속도가 같아 동기가 된 것이 아닌가 싶습니다.
혹시 옆에 다른 분이 같은 모듈로 실험하는 것이 없었는 지 확인하여 보세요.
슬레이브는 깜빡이는 것은 동기가 되지 않아서 연결되지 않아서 그런 것입니다.
감사합니다.
>
>
> 안녕하세요 아두이노로 PM-BT-UART-S,M 블루투스 통신을 사용하려고 합니다.
> 아두이노에서 설정을 통해 PIN을 모두 맞춘 상태로 페어링을 하려고 했는데 PM-BT-UART-M의 경우는 LED가 깜빡이지 않고 켜진 상태로 유지가 되는데 PM-BT-UART-S의 경우는 LED가 계속해서 깜빡이네요ㅠㅜ
> 혹시나 잘못 연결한 것인가 싶어서 AT+ORGL 초기화를 시켰고 다른 모듈로도 바꿔서 사용해 봤는데 여전히 PM-BT-UART-S만 계속해서 깜빡거리네요ㅠㅜ
> 어떤 문제 때문에 이럴까요?ㅠㅜ
>
|
||||
| 9592 | 답변완료Am128 pro | 연사환 | 2016-04-06 | 1,768 |
|
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
죄송하지만 해당 라이브러리는 공개하지 않고 있습니다.
감사합니다.
>
>
> am-128pro
>
> orcad 라이브러리를 받을 수 있을까요?
> 받을수 있다면
>
> [email protected] 보내주세요
이렇게 말씀하셨는데 제가 이 제품을 이용해서 졸업작품의 회로도를 그려야하는데
Orcad 라이브러리가 있으면 보다 쉽게 그릴수 있어 문의드렸는데
라이브러리를 받을수 없을까요? 부탁드립니다ㅠㅠ
관리자 답변
안녕하세요? 고객님,
ATmega128의 캐드 라이브러리가 그렇게 어려운 것은 아니라서,
직접 그리셔도 되고, 인터넷에도 많이 풀려 있습니다.
그 회로의 회로도는 PDF형태로 저희가 제공 가능합니다만,
캐드 라이브러리를 드리고 있지는 않습니다.
회로 요청은 A/S 신청에서 제품 구매 영수증 첨부하여 해주시면 됩니다.
감사합니다.
>
>
> 안녕하세요? 고객님,
> 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
>
> 죄송하지만 해당 라이브러리는 공개하지 않고 있습니다.
> 감사합니다.
>
> >
> >
> > am-128pro
> >
> > orcad 라이브러리를 받을 수 있을까요?
> > 받을수 있다면
> >
> > [email protected] 보내주세요
>
>
>
>
> 이렇게 말씀하셨는데 제가 이 제품을 이용해서 졸업작품의 회로도를 그려야하는데
> Orcad 라이브러리가 있으면 보다 쉽게 그릴수 있어 문의드렸는데
> 라이브러리를 받을수 없을까요? 부탁드립니다ㅠㅠ
>
|
||||
| 9591 | 답변완료USBISP 드라이버 설치 방법 | 강호은 | 2016-04-06 | 1,872 |
|
안녕하세요.
windows 10 노트북에 USBISP 드라이버를 설치하려고 합니다.
사용중인 USBISP는 구매한지 좀 되었는지 최근에 귀사에서 펌웨어 업데이트를 받았습니다.
귀사 사이트에 있는 v 3.6 드라이버를 설치했는데, 디바이스가 안 잡힙니다.
장치 관리자에서 "기타장치" 아래로 "CP2103 USB to UART Bridget Controller"로 표시되고 드라이버가 안 잡혔다는 "!"가 표시됩니다.
방법이 있으면 알려주십시오.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
우선, 고객님의 WINDOWS 10이 32비트인지 64비트인지를 알아봐야 합니다.
아는 방법은 시스템에서 보면 시스템 종류가 32비트운영체제인지, 64비트 운영체제인지 보시면 됩니다.
32비트이면 드라이버 중에서 x86으로 끝나는 것을 설치하시면 되고,
64비트이면 드라이버 중에서 x64로 끝나는 것을 설치하시면 됩니다.
이미 설치하셨다면, 기존의 것들을 프로그램 추가삭제에서 모두 삭제하시고,
리부팅 하신 후에 다시 설치하셔야 합니다.
설치 파일은
http://www.silabs.com/Support%20Documents/Software/CP210x_Windows_Drivers.zip
최신판인 이것을 깔아 주시면 됩니다. 첨부도 해드렸습니다.
감사합니다.
>
>
> 안녕하세요.
>
> windows 10 노트북에 USBISP 드라이버를 설치하려고 합니다.
>
> 사용중인 USBISP는 구매한지 좀 되었는지 최근에 귀사에서 펌웨어 업데이트를 받았습니다.
>
> 귀사 사이트에 있는 v 3.6 드라이버를 설치했는데, 디바이스가 안 잡힙니다.
>
> 장치 관리자에서 "기타장치" 아래로 "CP2103 USB to UART Bridget Controller"로 표시되고 드라이버가 안 잡혔다는 "!"가 표시됩니다.
>
> 방법이 있으면 알려주십시오.
>
|
||||
| 9590 | 답변완료am-128pro 라이브러리 | 연사환 | 2016-04-05 | 1,851 |
|
am-128pro
orcad 라이브러리를 받을 수 있을까요?
받을수 있다면
[email protected] 보내주세요
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
죄송하지만 해당 라이브러리는 공개하지 않고 있습니다.
감사합니다.
>
>
> am-128pro
>
> orcad 라이브러리를 받을 수 있을까요?
> 받을수 있다면
>
> [email protected] 보내주세요
>
|
||||
| 9589 | 답변완료아두이노 DM-USTYLE보드에서 usb2serial 업로드가 안되네요. (다시 질문드립니다.) | 이래현 | 2016-04-05 | 1,885 |
|
바로 아래에서 알려주신데로 스케치를 1.7.9로 업데이트해서 usb2serial 업로드 하려고 했더니, 안되어서
다시 ISP로 연결해서 '프로그래머를 이용해 업로드' 메뉴를 이용하여 할려고 했더니,
업로드 오류: 설정 값'program.tool'이 없음
이라고 에러메시지를 띄우며 안됩니다. (usb2serial 업로드는 계속 안되구요.)
그래서, 부트로더 굽기도 안되구요.
어떻게 해야 할까요?
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
본사로 보내서 점검받아보시는게 좋겠습니다.
감사합니다.
>
>
> 바로 아래에서 알려주신데로 스케치를 1.7.9로 업데이트해서 usb2serial 업로드 하려고 했더니, 안되어서
>
> 다시 ISP로 연결해서 '프로그래머를 이용해 업로드' 메뉴를 이용하여 할려고 했더니,
>
> 업로드 오류: 설정 값'program.tool'이 없음
>
> 이라고 에러메시지를 띄우며 안됩니다. (usb2serial 업로드는 계속 안되구요.)
>
> 그래서, 부트로더 굽기도 안되구요.
>
> 어떻게 해야 할까요?
>
|
||||
| 9588 | 답변완료아두이노 DM-USTYLE보드에서 usb2serial 업로드가 안되네요. | 이래현 | 2016-04-03 | 1,902 |
|
이전에 올리신 김성진님과 같은 증상입니다. (질문답변 번호 : 19820, 19824, 19826)
해결되셨는지 궁금하네요.
에러메시지 avrdude: stk500_getsync(): not in sync: resp=0x00
이전 질문과 답변에서 알려주신 것을 참고하여,
알려주신데로 해서, ISP로 하는 것은 됩니다.
스케치 도구에서 부트로더굽기도 잘 됩니다.
그래서 다시 usb2serial로 연결하여 스케치에서 업로드를 하려고 하니
똑같은 에러메시지가 나오며 안되네요.
avrdude: stk500_getsync(): not in sync: resp=0x00
부트로더굽기 후 추가로 해야되는 다른 절차가 있나요?
저는 ISP로 연결 -> 부트로더굽기 -> usb2serial로 연결 -> 스케치 업로드
이렇게 해보았습니다.
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
최근에 아두이노에서 arduino.cc와 arduino.org사이에 문제가 있었던것으로 압니다.
그 이후 서로 다른 버전의 스케치 소프트웨어를 발표하고 있습니다.
그런데 최근의 .cc의 스케치로 부트로더 업로드하면 다른 버전들과 호환이 안되거나 하는 증상도 발견되었습니다.
아래의 org 소프트웨어로 다시 해보세요.
최근 저희도 비슷한 문제로 몇가지 실험을 했는데 발견된겁니다.
http://download.arduino.org/IDE/1.7.9/arduino-1.7.9.org-windows.exe
또한 강의자료 하나를 올려드리오니 참고하시기 바랍니다.
감사 합니다.
>
>
> 이전에 올리신 김성진님과 같은 증상입니다. (질문답변 번호 : 19820, 19824, 19826)
> 해결되셨는지 궁금하네요.
>
> 에러메시지 avrdude: stk500_getsync(): not in sync: resp=0x00
>
> 이전 질문과 답변에서 알려주신 것을 참고하여,
> 알려주신데로 해서, ISP로 하는 것은 됩니다.
> 스케치 도구에서 부트로더굽기도 잘 됩니다.
>
> 그래서 다시 usb2serial로 연결하여 스케치에서 업로드를 하려고 하니
> 똑같은 에러메시지가 나오며 안되네요.
> avrdude: stk500_getsync(): not in sync: resp=0x00
>
> 부트로더굽기 후 추가로 해야되는 다른 절차가 있나요?
>
> 저는 ISP로 연결 -> 부트로더굽기 -> usb2serial로 연결 -> 스케치 업로드
> 이렇게 해보았습니다.
>
|
||||
| 9587 | 답변완료핸드폰과 PM-BT-UART-M,S 연결 | 이종성 | 2016-04-01 | 1,672 |
|
아두이노쪽에서 핸드폰으로 블루투스를 이용해 데이터를 전송하고 싶은대
PM-BT-UART-M,S 중 어떤걸 연결해야 되는 건가요?
관리자 답변
안녕하세요? 고객님,
저희뉴티씨 제품을 이용하여 주셔서 감사합니다.
스마트폰 안에 있는 것이 마스터 모듈이라 슬레이브 모듈을 사야 합니다.
PM-BT-UART-S 를이용하셔야 합니다.
감사합니다.
>
>
> 아두이노쪽에서 핸드폰으로 블루투스를 이용해 데이터를 전송하고 싶은대
> PM-BT-UART-M,S 중 어떤걸 연결해야 되는 건가요?
>
|
||||
| 9586 | 답변완료라인트레이서 질문 | 김홍기 | 2016-04-01 | 1,617 |
|
졸업작품을하는데 동작이 이렇게됩니다.
1. 시작선에서 전원버튼을 킨다.
2. 저장공간에 물체를 올려 놓을시 오토트레일러가 선을 따라 움직인다.
3. 전방에 장애물 봉착시 멈춘다
4. 라인 끝선에 도달시 멈춘다
5. 저장공간에 물체를 다시 치우면 뒤로 후진하게 된다.
6. 후진시에도 장애물 봉착시 멈추게 된다.
7. 다시 시작점 도착시 멈춘다.
장애물 인식은 적외선 센서로 하기로했는데 저장공간에 물체를 인식하려면 뭐를 쓰면좋나요?
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
본사에 현재의 라인트레이서 기구물에
전방이나 후방에 센서 부착 가능한 형태의 기구물이 만들어져 있어서, 조만간 판매 예정입니다.
전화로는 사실 지금도 구매가능합니다. 조만간 홈페이지에도 페이지를 구축 예정입니다.
또한, 여기에 붙이는 전방을 인식할 수 있는 적외선(IR)방식의 센서 보드도 개발되고 있습니다.
조만간 판매 예정입니다.
저장 공간이라는 곳에도 별도로 고정된 적외선으로 인식하고 있으면 되지 않나요?
그럼 같은 센서 써도 될 것 같구요.
만약, 그렇게 안하고 특정한 물체가 있다 없다로 인식하려면, RFID나 같은 걸로 하면 좋겠습니다.
감사합니다.
>
>
> 졸업작품을하는데 동작이 이렇게됩니다.
> 1. 시작선에서 전원버튼을 킨다.
> 2. 저장공간에 물체를 올려 놓을시 오토트레일러가 선을 따라 움직인다.
> 3. 전방에 장애물 봉착시 멈춘다
> 4. 라인 끝선에 도달시 멈춘다
> 5. 저장공간에 물체를 다시 치우면 뒤로 후진하게 된다.
> 6. 후진시에도 장애물 봉착시 멈추게 된다.
> 7. 다시 시작점 도착시 멈춘다.
>
> 장애물 인식은 적외선 센서로 하기로했는데 저장공간에 물체를 인식하려면 뭐를 쓰면좋나요?
>
|
||||
| 9585 | 답변완료공식홈페이지에서 온라인 구매 | 김동희 | 2016-03-31 | 1,576 |
|
공식홈페이지에서 온라인으로 AD-USBISP V03.6를 구매하고
입금까지 완료했습니다.
구매 가능한건가요?
발송은 언제되나요?
주문번호 : 1603310001
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
이미 입금확인하고 발송했습니다.
내일 받으실겁니다. 홈페이지 발송 데이타 업데이트만 남았습니다.
로젠택배로 발송되었습니다.
내일 업데이트가 됩니다.
감사합니다.
>
>
> 공식홈페이지에서 온라인으로 AD-USBISP V03.6를 구매하고
>
> 입금까지 완료했습니다.
>
> 구매 가능한건가요?
>
> 발송은 언제되나요?
>
> 주문번호 : 1603310001
>
|
||||
| 9584 | 답변완료초음파 센서 구동 문의 | 문해니 | 2016-03-30 | 1,542 |
|
#include <iom128v.h>
#include <macros.h>
char data;
int cnt, flag, intd, cnt3, flag3, intd3, cnt0, flag0, intd0;
float d, d3;
////////////COUTNER////////////
void Counter3_setting(void)
{
TCCR3A = 0X00;
TCCR3B = 0X02;
TCNT3 = 0;
}
////////////UART///////////////////
void tx0Char(char message);
void tx0number(unsigned int Data)
{
tx0Char( (Data/10000) +'0');
tx0Char(((Data/ 1000)%10)+'0');
tx0Char(((Data/ 100)%10)+'0');
tx0Char(((Data/ 10)%10)+'0');
tx0Char( (Data %10)+'0');
}
void tx0Char(char message)
{
while (!(UCSR0A & 0x20));
UDR0 = message;
}
#pragma interrupt_handler UART0_RX : 19
void UART0_RX(void)
{
CLI();
data = UDR0;
d = cnt*0.085+40;
d3 = cnt3*0.085+40;
intd = (int)d;
intd3 = (int)d3;
intd0 =(int)cnt0*0.085; //거리값 계산
tx0Char(data); tx0number(intd); tx0Char('\r'); tx0Char('\n');
tx0Char('T'); tx0number(intd3); tx0Char('\r'); tx0Char('\n');
tx0Char('Z'); tx0number(intd0); tx0Char('\r'); tx0Char('\n'); tx0Char('\r'); tx0Char('\n'); //PC로 거리값 출력
PORTA = ~(PORTA);
flag=0; flag3 = 0; flag0 = 0;
PORTF = 0XFF; //초음파 송신
Counter3_setting(); //카운팅시작
SEI();
}
void uart0_init(void)
{
UCSR0B = 0b10011000; //rxcie ON RXEN ON TXEN ON
UCSR0A = 0X00;
UCSR0C = 0X06;
UBRR0L = 0X67; //9600BPS
UBRR0H = 0X00;
}
//////////INTERRUPT
#pragma interrupt_handler ISR1 : iv_INT1
void ISR1(void) //초음파 1 수신시 작동
{
PORTA = ~(PORTA);
flag++;
if( flag == 1){ PORTF = 0x00; }
else if(flag == 2)
{
cnt=TCNT3;
}
}
#pragma interrupt_handler ISR3 : iv_INT3
void ISR3(void)
{
PORT if(flag3 == 2)
{
cnt3=TCNT3;
}
}
#pragma interrupt_handler int0_isr : 2
void int0_isr(void)
{
PORTA = ~(PORTA);
flag0++;
if( flag0 == 1){ PORTF = 0x00; }
else if(flag0 == 2)
{
cnt0=TCNT3;
}
}
////////INT setting/////////
void int_setting(void)
{
EICRA = 0X0c; EICRA |= 0XC0;
EICRA |= 0X03;
EICRB = 0X00;
EIMSK = 0X02; EIMSK |= 0X08; EIMSK |= 0X01;
}
int main(void)
{
SEI();
uart0_init();
int_setting();
DDRA = 0xFF;
PORTA = 0x00;
DDRF = 0XFF;
PORTF = 0X00;
// Insert code
while(1);
}A = ~(PORTA);
flag3++;
if( flag3 == 1){ PORTF = 0x00; }
else if(flag3 == 2)
{
cnt3=TCNT3;
}
}
#pragma interrupt_handler int0_isr : 2
void int0_isr(void)
{
PORTA = ~(PORTA);
flag0++;
if( flag0 == 1){ PORTF = 0x00; }
else if(flag0 == 2)
{
cnt0=TCNT3;
}
}
////////INT setting/////////
void int_setting(void)
{
EICRA = 0X0c; EICRA |= 0XC0;
EICRA |= 0X03;
EICRB = 0X00;
EIMSK = 0X02; EIMSK |= 0X08; EIMSK |= 0X01;
}
int main(void)
{
SEI();
uart0_init();
int_setting();
DDRA = 0xFF;
PORTA = 0x00;
DDRF = 0XFF;
PORTF = 0X00;
// Insert code
while(1);
}
하기소닉 초음파 센서로 거리 측정하려고 합니다.
첨부한 ppt에 회로도와 초음파 센서 작동법 기재하였습니다.
현재 int1, int3에서 측정한 결과값은 거리값을 매우잘 보여주고있습니다. pc에
그런데 int0에서 측정한 결과값(그외 다른 int4~7f로 바꿨을때도 마찬가지)은 그냥 0으로 뜹니다.
초음파 송신하지 않고, 일부로 초음파 수신기에 충격을 주어서 인터럽트를 만들어주었을때 PA0에 달린
LED가 깜박하는것을 확인 할 수 있었습니다.(int0은 작동하는듯)
그러나 계속적으로 측정길이 결과값은 0이 뜨는데 도저히 이유를 모르겠습니다.
제발 도와주세요 ㅠㅠ
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
일단, 소스를 보니, 인터럽트 구문 내에서 너무 많은 시간을 일하는 소스입니다.
인터럽트를 빠져나갔을 때 쯤이면 이미 다음 수행할 인터럽트가 대기하고 있어서,
메인문을 할 수도 없거니와, 다음 인터럽트도 모두 정상동작한다고 보기 어렵습니다.
우선, 인터럽트 안에서는 플래그 정도만 변경하고, 메인에서 일하도록 소스를 변경하여 보세요.
감사합니다.
>
>
> #include <iom128v.h>
> #include <macros.h>
>
>
>
> char data;
> int cnt, flag, intd, cnt3, flag3, intd3, cnt0, flag0, intd0;
> float d, d3;
>
> ////////////COUTNER////////////
> void Counter3_setting(void)
> {
> TCCR3A = 0X00;
> TCCR3B = 0X02;
> TCNT3 = 0;
> }
>
> ////////////UART///////////////////
> void tx0Char(char message);
> void tx0number(unsigned int Data)
> {
> tx0Char( (Data/10000) +'0');
> tx0Char(((Data/ 1000)%10)+'0');
> tx0Char(((Data/ 100)%10)+'0');
> tx0Char(((Data/ 10)%10)+'0');
> tx0Char( (Data %10)+'0');
> }
> void tx0Char(char message)
> {
> while (!(UCSR0A & 0x20));
> UDR0 = message;
> }
>
> #pragma interrupt_handler UART0_RX : 19
> void UART0_RX(void)
> {
> CLI();
> data = UDR0;
> d = cnt*0.085+40;
> d3 = cnt3*0.085+40;
> intd = (int)d;
> intd3 = (int)d3;
> intd0 =(int)cnt0*0.085; //거리값 계산
> tx0Char(data); tx0number(intd); tx0Char('\r'); tx0Char('\n');
> tx0Char('T'); tx0number(intd3); tx0Char('\r'); tx0Char('\n');
> tx0Char('Z'); tx0number(intd0); tx0Char('\r'); tx0Char('\n'); tx0Char('\r'); tx0Char('\n'); //PC로 거리값 출력
> PORTA = ~(PORTA);
> flag=0; flag3 = 0; flag0 = 0;
> PORTF = 0XFF; //초음파 송신
> Counter3_setting(); //카운팅시작
> SEI();
> }
> void uart0_init(void)
> {
> UCSR0B = 0b10011000; //rxcie ON RXEN ON TXEN ON
> UCSR0A = 0X00;
> UCSR0C = 0X06;
> UBRR0L = 0X67; //9600BPS
> UBRR0H = 0X00;
> }
>
> //////////INTERRUPT
>
> #pragma interrupt_handler ISR1 : iv_INT1
> void ISR1(void) //초음파 1 수신시 작동
> {
> PORTA = ~(PORTA);
> flag++;
> if( flag == 1){ PORTF = 0x00; }
> else if(flag == 2)
> {
> cnt=TCNT3;
>
> }
> }
> #pragma interrupt_handler ISR3 : iv_INT3
> void ISR3(void)
> {
> PORT if(flag3 == 2)
> {
> cnt3=TCNT3;
>
> }
> }
> #pragma interrupt_handler int0_isr : 2
> void int0_isr(void)
> {
> PORTA = ~(PORTA);
> flag0++;
> if( flag0 == 1){ PORTF = 0x00; }
> else if(flag0 == 2)
> {
> cnt0=TCNT3;
> }
> }
> ////////INT setting/////////
> void int_setting(void)
> {
> EICRA = 0X0c; EICRA |= 0XC0;
> EICRA |= 0X03;
> EICRB = 0X00;
> EIMSK = 0X02; EIMSK |= 0X08; EIMSK |= 0X01;
> }
> int main(void)
> {
> SEI();
> uart0_init();
> int_setting();
>
> DDRA = 0xFF;
> PORTA = 0x00;
>
> DDRF = 0XFF;
> PORTF = 0X00;
>
> // Insert code
>
> while(1);
> }A = ~(PORTA);
> flag3++;
> if( flag3 == 1){ PORTF = 0x00; }
> else if(flag3 == 2)
> {
> cnt3=TCNT3;
>
> }
> }
> #pragma interrupt_handler int0_isr : 2
> void int0_isr(void)
> {
> PORTA = ~(PORTA);
> flag0++;
> if( flag0 == 1){ PORTF = 0x00; }
> else if(flag0 == 2)
> {
> cnt0=TCNT3;
> }
> }
> ////////INT setting/////////
> void int_setting(void)
> {
> EICRA = 0X0c; EICRA |= 0XC0;
> EICRA |= 0X03;
> EICRB = 0X00;
> EIMSK = 0X02; EIMSK |= 0X08; EIMSK |= 0X01;
> }
> int main(void)
> {
> SEI();
> uart0_init();
> int_setting();
>
> DDRA = 0xFF;
> PORTA = 0x00;
>
> DDRF = 0XFF;
> PORTF = 0X00;
>
> // Insert code
>
> while(1);
> }
>
>
> 하기소닉 초음파 센서로 거리 측정하려고 합니다.
> 첨부한 ppt에 회로도와 초음파 센서 작동법 기재하였습니다.
>
> 현재 int1, int3에서 측정한 결과값은 거리값을 매우잘 보여주고있습니다. pc에
> 그런데 int0에서 측정한 결과값(그외 다른 int4~7f로 바꿨을때도 마찬가지)은 그냥 0으로 뜹니다.
> 초음파 송신하지 않고, 일부로 초음파 수신기에 충격을 주어서 인터럽트를 만들어주었을때 PA0에 달린
> LED가 깜박하는것을 확인 할 수 있었습니다.(int0은 작동하는듯)
> 그러나 계속적으로 측정길이 결과값은 0이 뜨는데 도저히 이유를 모르겠습니다.
>
> 제발 도와주세요 ㅠㅠ
>
|
||||
| 9583 | 답변완료kr-sl128 크기가 어떻게 되나요. | 김상진 | 2016-03-30 | 1,630 |
|
스테핑 라인트레이서 키트 kr sl128
완성품의 가로 세로 높이 크기가 어느정도 되나요?
관리자 답변
안녕하세요, 뉴티씨입니다. 문의 내용 확인하였습니다. 추가 문의사항은 [email protected] 또는 02-704-4774로 연락 주시기 바랍니다. 감사합니다.
|
||||
| 9582 | 답변완료isp관련해서 문의합니다. | 김선규 | 2016-03-29 | 1,589 |
|
방금 전의 글과 연관되어서 연락드립니다.
호환성은 아무런 문제가 없는데
펌업을 해야될것 같은데 어떻게 해야되나요?
따로 보내지 않고 집에서 하는 방법은 없는건가요?
관리자 답변
안녕하세요? 고객님,
펌업은 본사로 방문하시거나 보내거나 해서,
본사에서 직접 해야 합니다. 펌업 자체는 무상으로 진행해 드리고 있습니다.
펌업시 USBISP의 이상유무 점검도 함께 진행되므로, 도움이 되실 것입니다.
본사로 보내거나 방문하셔서 업그레이드 받으시기를 권합니다.
감사합니다.
>
>
> 방금 전의 글과 연관되어서 연락드립니다.
>
> 호환성은 아무런 문제가 없는데
>
> 펌업을 해야될것 같은데 어떻게 해야되나요?
>
> 따로 보내지 않고 집에서 하는 방법은 없는건가요?
>
|
||||
| 9581 | 답변완료isp관련해서 문의 드립니다. | 김선규 | 2016-03-29 | 1,573 |
|
avr studio 7.0을 사용을 하려고 하는데 사진과 같은 오류가 나타나더군요.
알아보니까 isp쪽 문제라고 펌웨어 업글을 하라고 하던데
지금 사용하고 있는건 뉴티씨꺼 AD-usbisp v3.5를 사용하고 있습니다.
혹시 isp문제가 아니라면 어떠한 문제인지 알려주실수 있으십니까?
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
본사에서 펌업을 하여 문제를 해결해야 합니다.
아니면 호환성에 문제가 생기게 되어서 그렇습니다.
감사합니다.
>
>
> avr studio 7.0을 사용을 하려고 하는데 사진과 같은 오류가 나타나더군요.
>
> 알아보니까 isp쪽 문제라고 펌웨어 업글을 하라고 하던데
>
> 지금 사용하고 있는건 뉴티씨꺼 AD-usbisp v3.5를 사용하고 있습니다.
>
> 혹시 isp문제가 아니라면 어떠한 문제인지 알려주실수 있으십니까?
>
|
||||
| 9580 | 답변완료아랫글 이어 | 문해니 | 2016-03-29 | 1,554 |
|
아 아무것도 연결해놓지 않은 상태에서 인터럽트를 준게 문제일수 있겠네요
혹시 int0~7번 연결해 놓은 회로도도 첨부해 주실수 있나요?
관리자 답변
안녕하세요? 고객님,
회로도는 제품 구매시에 오픈되는 회로만 제공됩니다.
스위치를 누르면 VCC랑 붙고,
평시에는 저항으로 Pull down된 회로도 쓰시면 간단하게 실습 가능합니다.
다만, 커패시터 등을 사용하여 바운싱 방지회로 만들어 붙이면 좋습니다.
감사합니다.
>
>
> 아 아무것도 연결해놓지 않은 상태에서 인터럽트를 준게 문제일수 있겠네요
> 혹시 int0~7번 연결해 놓은 회로도도 첨부해 주실수 있나요?
>
|
||||
| 9579 | 답변완료아래글 이어서 | 문해니 | 2016-03-28 | 1,586 |
|
테스트 해봤는데..
안되네요...ㅜㅜ
제가 atmega128이 두개가 있구요
한개 테스트 결과
int0 됨
int1 한번은됨
int2 안됨
int3 됨
int4 안됨
int5 안됨
int6 안됨
int7 안됨
(동시에 INT0,3까지 가능)
소스코드는 올려주신걸 PA0깜박걸리는 걸로 살짝바꿧습니다.
//ICC-AVR application builder : 2007-03-22 오후 7:32:10
// Target : M128
// Crystal: 16.000Mhz
#include <iom128v.h>
#include <macros.h>
volatile int i = 0;
void port_init(void)
{
PORTA = 0x00;
DDRA = 0xff;
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 = 0x03;
}
/*//UART0 initialize
// desired baud rate: 9600
// actual: baud rate:9615 (0.2%)
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
UCSR0B = 0x00; //disable while setting baud rate
UCSR0A = 0x00;
UCSR0C = 0x06;
UBRR0L = 0x67; //set baud rate lo
UBRR0H = 0x00; //set baud rate hi
UCSR0B = 0x18;
}*/
#pragma interrupt_handler int7_isr:iv_INT7
void int7_isr(void)
{
CLI();
i++;
//external interupt on INT0
SEI();
}
//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 3..0
EICRB = 0xc0; //extended ext ints 7..4 Be careful of PORTE's PE0 => PDI and PE1 => PDO, so please attention when downloading.
EIMSK = 0x80; // External interrupt Mask register 7..0
TIMSK = 0x00; //timer interrupt sources
ETIMSK = 0x00; //extended timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
void main ( void )
{
init_devices( );
while( 1 )
{
if ( i%2 )
{
PORTA = 0x01;
}else{
PORTA = 0x02;
}
}
}
두번째 같은 모델의 atmega128을 검증해봤을때 귀찮아서 한방에 검사해보았습니다.
//ICC-AVR application builder : 2007-03-22 오후 7:32:10
// Target : M128
// Crystal: 16.000Mhz
#include <iom128v.h>
#include <macros.h>
int i = 0;
void port_init(void)
{
PORTA = 0x00;
DDRA = 0xff;
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 = 0x03;
}
/*//UART0 initialize
// desired baud rate: 9600
// actual: baud rate:9615 (0.2%)
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
UCSR0B = 0x00; //disable while setting baud rate
UCSR0A = 0x00;
UCSR0C = 0x06;
UBRR0L = 0x67; //set baud rate lo
UBRR0H = 0x00; //set baud rate hi
UCSR0B = 0x18;
}*/
#pragma interrupt_handler int0_isr: 2
void int0_isr(void)
{
CLI();
i++;
//external interupt on INT0
SEI();
}
#pragma interrupt_handler int1_isr:iv_INT1
void int1_isr(void)
{
CLI();
i++;
//external interupt on INT0
SEI();
}
#pragma interrupt_handler int2_isr:iv_INT2
void int2_isr(void)
{
CLI();
i++;
//external interupt on INT0
SEI();
}
#pragma interrupt_handler int3_isr:iv_INT3
void int3_isr(void)
{
i++;
}
#pragma interrupt_handler int4_isr:iv_INT4
void int4_isr(void)
{
i++;
}
#pragma interrupt_handler int5_isr:iv_INT5
void int5_isr(void)
{
i++;
}
#pragma interrupt_handler int6_isr:iv_INT6
void int6_isr(void)
{
i++;
}
#pragma interrupt_handler int7_isr:iv_INT7
void int7_isr(void)
{
i++;
}
//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 = 0xff; //extended ext ints 3..0
EICRB = 0xff; //extended ext ints 7..4
EIMSK = 0xff; // External interrupt Mask register 7..0
TIMSK = 0x00; //timer interrupt sources
ETIMSK = 0x00; //extended timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
void main ( void )
{
init_devices( );
while( 1 )
{
if ( i%2 )
{
PORTA = 0x01;
}else{
PORTA = 0x02;
}
}
}
그결과 int0,3정상작동
int1,4,5,6,7 어쩌다 한번은 작동
int2 안됨
이였습니다.
원인이 뭘까요?
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
위의 소스는 INT7 즉, PE7에서 rising edge 입력 받아서, PORTA의 D0번 LED변화주는 거구요.
밑의 소스는 IN0~INT7 까지 모두의 외부인터럽트를 모두 rising edge 입력 받아서, 한 개라도 들어오면 같은 PORTA의 D0번 변화를 주는 겁니다.
테스트 하실 때에 반드시 본사의 Switch module인 AM-TS8처럼 8개 동시에 Active High 되는 회로를 물려 놓고, 평시에는 0이다가 누르면 각 핀이 1이 되는 형식의 모듈을 물려야 합니다.
한개 스위치로 뺏다가 꼽았다가 하는 식으로 하면 에러날 확률이 높습니다.
글쎄요. 그런식으로 안되는 것은 이해하기가 어렵네요.
방금 테스트 한 소스를 첨부합니다.
여기서는 이 소스로는 잘 됩니다.
다만, PD2의 INT2의 경우, 가지고 계신 모듈이 MAX3232와 붙어 있어서 그 칩의 영향으로,
해당핀의 인터럽트 지원은 어렵습니다.
감사합니다.
>
>
> 테스트 해봤는데..
> 안되네요...ㅜㅜ
>
> 제가 atmega128이 두개가 있구요
>
> 한개 테스트 결과
> int0 됨
> int1 한번은됨
> int2 안됨
> int3 됨
> int4 안됨
> int5 안됨
> int6 안됨
> int7 안됨
> (동시에 INT0,3까지 가능)
>
>
> 소스코드는 올려주신걸 PA0깜박걸리는 걸로 살짝바꿧습니다.
>
> //ICC-AVR application builder : 2007-03-22 오후 7:32:10
> // Target : M128
> // Crystal: 16.000Mhz
>
> #include <iom128v.h>
> #include <macros.h>
>
> volatile int i = 0;
>
> void port_init(void)
> {
> PORTA = 0x00;
> DDRA = 0xff;
> 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 = 0x03;
> }
>
> /*//UART0 initialize
> // desired baud rate: 9600
> // actual: baud rate:9615 (0.2%)
> // char size: 8 bit
> // parity: Disabled
> void uart0_init(void)
> {
> UCSR0B = 0x00; //disable while setting baud rate
> UCSR0A = 0x00;
> UCSR0C = 0x06;
> UBRR0L = 0x67; //set baud rate lo
> UBRR0H = 0x00; //set baud rate hi
> UCSR0B = 0x18;
> }*/
>
> #pragma interrupt_handler int7_isr:iv_INT7
> void int7_isr(void)
> {
> CLI();
> i++;
> //external interupt on INT0
> SEI();
> }
>
> //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 3..0
> EICRB = 0xc0; //extended ext ints 7..4 Be careful of PORTE's PE0 => PDI and PE1 => PDO, so please attention when downloading.
> EIMSK = 0x80; // External interrupt Mask register 7..0
> TIMSK = 0x00; //timer interrupt sources
> ETIMSK = 0x00; //extended timer interrupt sources
> SEI(); //re-enable interrupts
> //all peripherals are now initialized
> }
>
> void main ( void )
> {
> init_devices( );
>
> while( 1 )
> {
> if ( i%2 )
> {
> PORTA = 0x01;
> }else{
> PORTA = 0x02;
> }
> }
> }
>
>
> 두번째 같은 모델의 atmega128을 검증해봤을때 귀찮아서 한방에 검사해보았습니다.
> //ICC-AVR application builder : 2007-03-22 오후 7:32:10
> // Target : M128
> // Crystal: 16.000Mhz
>
> #include <iom128v.h>
> #include <macros.h>
>
> int i = 0;
>
> void port_init(void)
> {
> PORTA = 0x00;
> DDRA = 0xff;
> 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 = 0x03;
> }
>
> /*//UART0 initialize
> // desired baud rate: 9600
> // actual: baud rate:9615 (0.2%)
> // char size: 8 bit
> // parity: Disabled
> void uart0_init(void)
> {
> UCSR0B = 0x00; //disable while setting baud rate
> UCSR0A = 0x00;
> UCSR0C = 0x06;
> UBRR0L = 0x67; //set baud rate lo
> UBRR0H = 0x00; //set baud rate hi
> UCSR0B = 0x18;
> }*/
> #pragma interrupt_handler int0_isr: 2
> void int0_isr(void)
> {
> CLI();
> i++;
> //external interupt on INT0
> SEI();
> }
> #pragma interrupt_handler int1_isr:iv_INT1
> void int1_isr(void)
> {
> CLI();
> i++;
> //external interupt on INT0
> SEI();
> }
> #pragma interrupt_handler int2_isr:iv_INT2
> void int2_isr(void)
> {
> CLI();
> i++;
> //external interupt on INT0
> SEI();
> }
> #pragma interrupt_handler int3_isr:iv_INT3
> void int3_isr(void)
> {
> i++;
> }
> #pragma interrupt_handler int4_isr:iv_INT4
> void int4_isr(void)
> {
> i++;
> }
> #pragma interrupt_handler int5_isr:iv_INT5
> void int5_isr(void)
> {
> i++;
> }
> #pragma interrupt_handler int6_isr:iv_INT6
> void int6_isr(void)
> {
> i++;
> }
> #pragma interrupt_handler int7_isr:iv_INT7
> void int7_isr(void)
> {
> i++;
> }
> //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 = 0xff; //extended ext ints 3..0
> EICRB = 0xff; //extended ext ints 7..4
> EIMSK = 0xff; // External interrupt Mask register 7..0
> TIMSK = 0x00; //timer interrupt sources
> ETIMSK = 0x00; //extended timer interrupt sources
> SEI(); //re-enable interrupts
> //all peripherals are now initialized
> }
>
> void main ( void )
> {
> init_devices( );
>
> while( 1 )
> {
> if ( i%2 )
> {
> PORTA = 0x01;
> }else{
> PORTA = 0x02;
> }
> }
> }
>
>
> 그결과 int0,3정상작동
> int1,4,5,6,7 어쩌다 한번은 작동
> int2 안됨
>
> 이였습니다.
> 원인이 뭘까요?
>
|
||||
