Q&A
| 번호 | 제목 | 작성자 | 등록일 | 조회 |
|---|---|---|---|---|
| 6123 | 답변완료스위치 관련 질문입니다 | 윤경훈 | 2011-02-09 | 1,465 |
|
스위치를 사용할 경우 누르면 1이 입력되고 누르지 않았을 경우는 0이라고 메뉴얼에 나와있고요
초초보강좌에 보니
unsinged char sw;
while(1)
{
sw = PIND;
switch(sw)
{
case 0x01 :
.....
}
}
이런 예제가 있던데요. 그래서 제가 실습으로
#include<avr/io.h>
main()
{
unsigned char sw;
DDRA = 0xff;
DDRG = 0x00;
PORTA = 0xff;
while(1)
{
sw = PING;
if(sw == 0x01)
PORTA = 0x00;
else
PORTA = 0x01;
}
}
이렇게 작성을 해봣는데요. 포트에 스위치가 안먹히고 0x01만 됩니다. 포트를 바꿔서 해도 그렇고요
그래서 제가 딴 책을 참고해서 보니깐
while(1)
{
while(!(~PIND & 0x01)); //폴링방식, 스위치 누름을 기다림.
if(++i == 8 ) i =0;
PORTA = pattern[i];
while(~PIND & 0x01); //스위치 떨어짐을 기다림
}
이렇게 소스가 있길래 해보니깐 스위치가 먹히더라고요
이 책에서는 스위치가 닫힐때 즉, 누를때 0이 읽힌다고 되어 있습니다.
그리고 앞부분을 보면 스위치는 플로팅 상태가 되면 안되기 때문에 풀업 저항을 이용하여 회로를 구성한다 라고 되어있고
풀업저항일 경우 스위치가 닫히면 논리0으로 읽히고 열리면 논리1로 읽힌다고 되어 있습니다.
즉 위의 소스는 닫히는 경우를 0으로 해서 구현된 소스이고요
제가 젤 첨에 했던 소스에 왜 동작을 안하는지 궁금하고요. 누르면 1이 입력된다고 했는데 왜 안되는지도 궁금하네요
관리자 답변
안녕하세요? 고객님,
혹시 사용중이신 킷트가 본사의 KD-128PRO 킷트가 맞다면,
PORTG의 D2, D3에 각각 스위치가 연결되어 있습니다.
아마 스위치 위치가 달라서 안된 것은 아닌지요?
그리고, 보통은 PING & 0x04와 같이 AND 연산을 통하여 그 핀만 뽑아서 검사하는 것이 보통입니다. 아래와 같이 소스를 짜게 되지요.
while(1){
if((PING & 0x04)){
printf("일\\n\\r");
PORTG = 0x01;
}
if((PING & 0x08)){
printf("이\\n\\r");
PORTG = 0x02;
}
delay(10);
}
이 소스는 잘 동작합니다. 첨부도 되어 있으니, 참고 바랍니다.
감사합니다.
>스위치를 사용할 경우 누르면 1이 입력되고 누르지 않았을 경우는 0이라고 메뉴얼에 나와있고요
>초초보강좌에 보니
>
>unsinged char sw;
>
>while(1)
>{
> sw = PIND;
> switch(sw)
> {
> case 0x01 :
> .....
> }
>
>}
>
>이런 예제가 있던데요. 그래서 제가 실습으로
>
>#include<avr/io.h>
>
>main()
>{
> unsigned char sw;
>
> DDRA = 0xff;
> DDRG = 0x00;
>
> PORTA = 0xff;
> while(1)
> {
> sw = PING;
> if(sw == 0x01)
> PORTA = 0x00;
> else
> PORTA = 0x01;
>
> }
>}
>이렇게 작성을 해봣는데요. 포트에 스위치가 안먹히고 0x01만 됩니다. 포트를 바꿔서 해도 그렇고요
>
>그래서 제가 딴 책을 참고해서 보니깐
>
>while(1)
>{
> while(!(~PIND & 0x01)); //폴링방식, 스위치 누름을 기다림.
> if(++i == 8 ) i =0;
> PORTA = pattern[i];
> while(~PIND & 0x01); //스위치 떨어짐을 기다림
>}
>이렇게 소스가 있길래 해보니깐 스위치가 먹히더라고요
>이 책에서는 스위치가 닫힐때 즉, 누를때 0이 읽힌다고 되어 있습니다.
>그리고 앞부분을 보면 스위치는 플로팅 상태가 되면 안되기 때문에 풀업 저항을 이용하여 회로를 구성한다 라고 되어있고
>
>풀업저항일 경우 스위치가 닫히면 논리0으로 읽히고 열리면 논리1로 읽힌다고 되어 있습니다.
>
>즉 위의 소스는 닫히는 경우를 0으로 해서 구현된 소스이고요
>
>제가 젤 첨에 했던 소스에 왜 동작을 안하는지 궁금하고요. 누르면 1이 입력된다고 했는데 왜 안되는지도 궁금하네요
|
||||
| 6122 | 답변완료SE-SM9K에 대해서 질문있습니다 | 최민수 | 2011-02-09 | 1,388 |
|
제가 지금까지 스테핑모터를 보니 2종류가 있더군요.
전원연결이 없을시 축부분을 손으로 잡고 돌릴때 힘을주면 돌아가는 모터와 힘을줘도 돌아가지 않는 것이 있더군요,
혹시 SE-SM9K는 전원연결없을때 축부분 잡고 돌리면 돌아가나요 안돌아가나요?
지금 제작하려는 제품에서는 무전원시 축부분이 돌아가지않고 단단히 고정이 되어야해서 여쭈어봅니다.
관리자 답변
안녕하세요
무부하시 돌아가지 않는 모터는 없습니다.
안돌아간 이유는 기어비가 들어간 모터(대형)가 사람힘으로 돌리지 못한 경우 입니다.
판매되고 있는 모터들은 무부하시 사람힘으로 돌아갑니다.
수고하세요
>제가 지금까지 스테핑모터를 보니 2종류가 있더군요.
>전원연결이 없을시 축부분을 손으로 잡고 돌릴때 힘을주면 돌아가는 모터와 힘을줘도 돌아가지 않는 것이 있더군요,
>혹시 SE-SM9K는 전원연결없을때 축부분 잡고 돌리면 돌아가나요 안돌아가나요?
>지금 제작하려는 제품에서는 무전원시 축부분이 돌아가지않고 단단히 고정이 되어야해서 여쭈어봅니다.
|
||||
| 6121 | 답변완료win7 64bit에서 usbisp드라이버 문제해결이 안됩니다. | 양종호 | 2011-02-09 | 1,345 |
|
AD-USBISP V03 을 구매해서 관련 드라이버를 다운받아서 설치했습니다만
디지털 서명을 확인할 수 없다고 합니다.
이제 막 avr을 배우는 초보라서 어떻게 해야할지 도통 모르겟네요.
드라이버는 V03 Driver(Windows 7) 을 설치했습니다.
제 노트북이 win7 home premium K 인데 지원이 안되는건가요?
관리자 답변
네, 고객님 32비트에서도 잘 인식합니다.
하지만, 드라이버가 다르니, 참고 바라며, 64비트의 경우는 드라이버 설정 전에 FAQ의 64비트에서의 설치 방법을 참고하셔서 하시기 바랍니다. 하지만, 본사로 오실 수 있으면, 본사에서 바로 해드리는 데, 매우 간단히 끝납니다. 고객님이 직접하려면 처음 해보시는 거라 어려우실 수도 있습니다.
드라이버를 반드시 해당 드라이버로 설치해 주셔야 합니다.
-WIN7 64비트용 드라이버 -
http://newtc.co.kr/board/download.php?id=faq&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=41&filenum=1
- WIN7 32비트용 드라이버 -
http://www.newtc.co.kr/download/AD-USBISP/USBISPV03_For_Win7.zip
수고하세요.
>AD-USBISP V03 을 구매해서 관련 드라이버를 다운받아서 설치했습니다만
>
>디지털 서명을 확인할 수 없다고 합니다.
>
>이제 막 avr을 배우는 초보라서 어떻게 해야할지 도통 모르겟네요.
>
>드라이버는 V03 Driver(Windows 7) 을 설치했습니다.
>
>제 노트북이 win7 home premium K 인데 지원이 안되는건가요?
>
>
>
|
||||
| 6120 | 답변완료usb-isp를 win7 64bit에 쓰도록 변경하면 32bit에서도 쓸수있나요? | 나종만 | 2011-02-09 | 1,287 |
|
제가 여러 컴퓨터에서 작업할 경우가 생겨서 win7 64bit와 winXP 32bit에서 사용해야하는데
드라이버 PID변경후에도 32bit에서 잘 인식하는지 궁금해서 어쭤봅니다.
관리자 답변
네, 고객님 32비트에서도 잘 인식합니다.
하지만, 드라이버가 다르니, 참고 바라며, 64비트의 경우는 드라이버 설정 전에 FAQ의 64비트에서의 설치 방법을 참고하셔서 하시기 바랍니다. 하지만, 본사로 오실 수 있으면, 본사에서 바로 해드리는 데, 매우 간단히 끝납니다. 고객님이 직접하려면 처음 해보시는 거라 어려우실 수도 있습니다.
드라이버를 반드시 해당 드라이버로 설치해 주셔야 합니다.
-WIN7 64비트용 드라이버 -
http://newtc.co.kr/board/download.php?id=faq&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=41&filenum=1
- WIN7 32비트용 드라이버 -
http://www.newtc.co.kr/download/AD-USBISP/USBISPV03_For_Win7.zip
수고하세요.
> 제가 여러 컴퓨터에서 작업할 경우가 생겨서 win7 64bit와 winXP 32bit에서 사용해야하는데
>
>드라이버 PID변경후에도 32bit에서 잘 인식하는지 궁금해서 어쭤봅니다.
|
||||
| 6119 | 답변완료갓 avr을 공부하기 시작한 학생입니다. 에러가 발생하여 질문드립니다. | 구동훈 | 2011-02-09 | 1,392 |
|
AB-M128-B을 구매하여 avr에 입문하기 위한 첫 걸음을 내딛었습니다. 현재 V03 Driver와 iccavr7 demo를 설치하고 AD-USBISP로 강의자료의 예제를 프로그래밍하려던 상태입니다. 그러던 중Cannot program or verify Flash는 에러가 발생하였는데 어찌 할바를 몰라 질문드립니다.
iccavr에서 설정화면과 에러화면을 첨부하였습니다. 해결방법을 가르쳐주시면 감사하겠습니다.
그리고 2가지 추가질문이 있습니다.
1. AD-USBISP에서 1번 스위치는 전원을 공급하는 것이라고 메뉴얼에 나와있던데 2번 스위치는 어떤 것인가요?
2. AB-M128-B에서 on-off스위치의 기능은 무엇인가요?
좋은 하루 되세요~
관리자 답변
안녕하세요? 고객님,
저희 뉴티씨 제품을 이용하여 주셔서 감사합니다.
USBISP 관련하여 ICCAVR 설치가 제대로 되지 않았거나 드라이버 설치가 제대로 되지 않은 것으로 보입니다. 자료실에서 USBISP 사용자 메뉴얼을 참고하셔서 설치하시기 바랍니다. 그렇게 하면 문제없이 사용 가능하실 겁니다.
그리고, 추가질문에 답변 드릴께요.
1. 2번 스위치는 본사에서 사용하는 스위치로 고객님과는 관계가 없습니다. OFF 상태로 사용하시기 바랍니다.
2. ON-OFF 스위치는 아답타로 보드가 전원을 공급받을 때, 전원을 ON/OFF 할 수 있는 스위치 입니다. USBISP에서 전원을 받게 되면, ON-OFF 스위치가 역할이 없어집니다.
감사합니다.
>AB-M128-B을 구매하여 avr에 입문하기 위한 첫 걸음을 내딛었습니다. 현재 V03 Driver와 iccavr7 demo를 설치하고 AD-USBISP로 강의자료의 예제를 프로그래밍하려던 상태입니다. 그러던 중Cannot program or verify Flash는 에러가 발생하였는데 어찌 할바를 몰라 질문드립니다.
>
>iccavr에서 설정화면과 에러화면을 첨부하였습니다. 해결방법을 가르쳐주시면 감사하겠습니다.
>
>그리고 2가지 추가질문이 있습니다.
>1. AD-USBISP에서 1번 스위치는 전원을 공급하는 것이라고 메뉴얼에 나와있던데 2번 스위치는 어떤 것인가요?
>2. AB-M128-B에서 on-off스위치의 기능은 무엇인가요?
>
>좋은 하루 되세요~
|
||||
| 6118 | 답변완료(재문의)avr128 development board & usb-isp v03(ad-usbisp v3) | 김환상 | 2011-02-09 | 1,402 |
|
알려주신 설명서와 같이 해보았으니 똑같은 에러 메세지가 나오네요..
보내야된다면 usb-isp v03만 보내야 되는건가요 아니면 보드랑 usb-isp v03랑 같이 보내야되는건가요?
관리자 답변
안녕하세요
정확한 점검을 위해 두 제품 모두를 보내 주시길 바랍니다.
제품 수령후 테스트후 상태 및 수리에 관련된 부분에 저희쪽에서 개별 연락을 드립니다.
수고하세요
>알려주신 설명서와 같이 해보았으니 똑같은 에러 메세지가 나오네요..
>보내야된다면 usb-isp v03만 보내야 되는건가요 아니면 보드랑 usb-isp v03랑 같이 보내야되는건가요?
|
||||
| 6117 | 답변완료AB-M128-B에 전원출력 단자 출력이 몇 A입니까? | 최민수 | 2011-02-09 | 1,439 |
|
5v, 12v 출력이 가능하다고 나와있는데 몇 A인지 나와있지않아 문의드립니다.^^;
어제 문의드린바로 usb전원으로는 부족한듯하여 AB-M128-B 전원어답터를 연결한 뒤 전원출력부분을 이용하여 AM-CS2P에 12V/1.0A 전원어답터를 연결하려고 합니다.
AM-CS2P에 SE-SM9K 2개를 연결할 예정인데 혹시 AB-M128-B에 12V/1.0A 전원어답터를 연결하면 전원 출력 역시 12V/1.0A로 되는것이지요?
그렇다면 이 회로는 가능하지 않을련지요.
관리자 답변
안녕하세요
SE-SM9K 이 하나당 모터는 최대 전류 소모량이 최대 24볼트, 3A 입니다.
12V 1A로 구동이 가능하나 정확한 토크 및 rpm을 낼수 없습니다.
보트에서 12볼트 출력은 아탑터 용량에 따라 틀립니다.
              5볼트 출력은 12볼트 1A 이상 아텁터를 인가할경우 출력은 5볼트1A 입니다.
두개의 모터를 사용하실려면 최소 12볼트에 2~3A 를사용하시고 모터의 성능 최대로 하기위해서는
위에서 언급한 정격을 사용하시길 바랍니다.
12V 출력핀은 회로도를 참고하시면 아시겠지만, 아답타 입력이 바로 나오는 겁니다.
따라서, 1~2A 정도까지는 바로 연결되어 나갈 수 있습니다.
감사합니다.
수고하세요
>5v, 12v 출력이 가능하다고 나와있는데 몇 A인지 나와있지않아 문의드립니다.^^;
>어제 문의드린바로 usb전원으로는 부족한듯하여  AB-M128-B 전원어답터를 연결한 뒤 전원출력부분을 이용하여 AM-CS2P에 12V/1.0A 전원어답터를 연결하려고 합니다.
>AM-CS2P에 SE-SM9K 2개를 연결할 예정인데 혹시 AB-M128-B에 12V/1.0A 전원어답터를 연결하면 전원 출력 역시 12V/1.0A로 되는것이지요?
>그렇다면 이 회로는 가능하지 않을련지요.
|
||||
| 6116 | 답변완료RFMOD사용시 4핀케이블연결이 이상합니다.~ | 이학경 | 2011-02-09 | 1,351 |
|
사진에서보시면 FRMOD를 연결해주는 4핀 케이블이 총 4개있습니다.
본체, usb, 분리된2개
이상한점은 총4개의 케이블을 개발보드와 RFMPOD연결할때 사용하면 지장없이 모두 잘 통신되는데
USB에 연결되는 RFMOD에 사용되는 케이블은 4개중 한개밖에 작동이 안됩니다. 나머지 3개를 연결하면 전원은 들어오는데 통신이 안되더군요...
통신시 들어오는 초록불도 다켜지는데 작동이 안됩니다.
전부다 안되는것도 아니고... 이건머 .. 난감그 자체네요..
모듈을 본체와 usb를 바꾸어 끼어보아도 안됩니다.
////
그리고 저번주에 usb통신변환잭이랑 rs232통신 안된다고 글올렸었는데요
혹시 케이블이 잘못되었나해서 9핀커넥터를 하나더 인터넷으로 구매해보았는데도
ttl통신으로 할때는 잘 작동되다가 9핀커넥터로 연결하면 mpu로부터 문자입력 받는건되는데 보내는건 안되네요...
머.. 이럴수도 있나요?.. 안되면 안되는거고 되면 되는건데.. 이건 상황이 웃기네요..
혹시 해결하실수 있나해서 질문올립니다.
관리자 답변
안녕하세요? 고객님,
4핀 케이블이 첨부한 파일처럼 총 2종류가 있습니다. 색깔은 예전에 제작된 케이블도 있어서, 그 경우 색이 좀 다를 수 있습니다.
하나는 다이렉트(Direct) 1:1 케이블이구요. 다른 하나는 크로스(Cross) 케이블입니다.
여기서 다이렉트니 크로스니 하는 것은 통신 선 즉, TX와 RX 가 서로 꼬여서 연결되기 위해서 필요한 것입니다. 즉, Direct 1:1 케이블은 말 그대로 1:1로 연결된 겁니다. 즉, 1-4번이 순서대로 1-4번으로 연결된 거죠. Cross 케이블은 2, 3번이 각각 거꾸로 3, 2번으로 연결된 케이스입니다.
본사의 통신 관련된 보드들 즉, AD-USBSERIAL의 4핀 커넥터나 AD-USBTINY 또는 AD-RFMOD와 같은 보드는 1-4번이 각각 VCC, RX, TX, GND 순서입니다.
하지만, 그외의 일반 보드들의 5045-4 4핀 커넥터는 즉, AVR 모듈이나 암보드, AVR 보드, 8051 보드 등의 5045-4 4핀 커넥터는 1-4번이 각각 VCC, TX, RX, GND 순으로 만들어져 있습니다.
따라서, 통신보드와 일반 보드를 연결할 때는 PCB 상에서 이미 꼬여져 있어서, 다이렉트 1:1 케이블을 사용하면 AVR의 TX-통신보드의 RX가 서로 연결되게 됩니다. 하지만, 통신보드끼리 연결할 때, 즉, AD-USBSERIAL - RFMOD와 같은 경우 통신보드끼리 연결되는 경우인데, 이 경우 보드가 2-3번이 꼬여서 연결되어야 TX-RX가 서로 꼬이게 되므로 크로스 케이블을 연결해야 합니다.
즉, RFMOD를 사용하려면, 경우에 따라서 이 두 케이블을 모두 사용해야 합니다.
이 문제가 아닌가 싶습니다.
그리고, 본사의 모듈은 TTL level도 CMOS level도 모두 대응 되도록 설계되어 있으며, 또한 동시에 RS-232C Level도 대응이 가능합니다. 따라서, 어느 한쪽만 된다던가 그렇지는 않습니다.
TTL Level에서 잘 된다면 소스도 이상이 없는 상태로 보여집니다. 혹시 RS-232C 레벨을 사용하실 때 TTL Level 쪽은 연결이 어떻게 되어 있는 지요? 경우에 따라서는 TTL Level도 함께 연결되어 있다면, 그 쪽 신호가 강해서, RS-232C level의 신호가 무시될 수도 있을 것 같습니다. 따라서, 어느 한쪽만 연결하여 사용하시기를 권장하여 드립니다.
정 안되시면, 본사로 오셔서 점검 받으시거나 보내셔서, 주고받고 다 되는 지 확인 하시는 게 좋겠습니다.
수고하세요.
>사진에서보시면 FRMOD를 연결해주는 4핀 케이블이 총 4개있습니다.
>
>본체, usb, 분리된2개
>
>이상한점은 총4개의 케이블을 개발보드와 RFMPOD연결할때 사용하면 지장없이 모두 잘 통신되는데
>
>USB에 연결되는 RFMOD에 사용되는 케이블은 4개중 한개밖에 작동이 안됩니다. 나머지 3개를 연결하면 전원은 들어오는데 통신이 안되더군요...
>통신시 들어오는 초록불도 다켜지는데 작동이 안됩니다.
>
>전부다 안되는것도 아니고... 이건머 .. 난감그 자체네요..
>
>모듈을 본체와 usb를 바꾸어 끼어보아도 안됩니다.
>
>
>////
>
>그리고 저번주에 usb통신변환잭이랑 rs232통신 안된다고 글올렸었는데요
>
>혹시 케이블이 잘못되었나해서 9핀커넥터를 하나더 인터넷으로 구매해보았는데도
>
>ttl통신으로 할때는 잘 작동되다가 9핀커넥터로 연결하면 mpu로부터 문자입력 받는건되는데 보내는건 안되네요...
>
>머.. 이럴수도 있나요?.. 안되면 안되는거고 되면 되는건데.. 이건 상황이 웃기네요..
>
>혹시 해결하실수 있나해서 질문올립니다.
|
||||
| 6115 | 답변완료ATMEGA 128 A/S 관련질문 및 요청사항 | 안재철 | 2011-02-08 | 1,356 |
|
일주일전 PRO 2개와 PL 1개 수리 및 점검을 위해 A/S를 요청 하였습니다.
결국 PRO 1개는 Chip을 교체를 하게 되었는데, 수리 후 제품을 받고 어제 테스트를 수행해 보니 PORT 출력은 LED 동작으로 모든 확인이 가능하였습니다. 그래서 제품이 모두 잘 동작한다고 생각했는데...
스위치 입력용으로 PORTA에 대한 PINA 값을 읽었을때 값이 정상적으로 나오지 않는 문제를 발견하였습니다. 하기와 같이 코드를 수정하고 제품을 테스트를 수행하였는데도 다음과 같은 결과가 계속적으로 나오는데 A/S를 보내야 될 것 같은데, A/S를 보내기 전 포트 입력에 대한 별도의 점검 프로그램이 있으시면 제가 제품의 고장 유무를 확인 하는데 도움이 될 것 같습니다.
그리고 A/S 또는 재품 점검 시 포트 출력에 대한 점검도 하시는지가 궁금합니다.
보유제품 Atmega 128 PRO ==> 계속 PINA의 값이 0x01값으로 들어옴
Atmega 128 PRO ==> 정상 작동
Atmega 128 PL ==> 정상 작동
Atmega 128 RAM ==> 정상 작동
void port_init(void)
{
PORTA = 0xFF;
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 = 0xff;
}
void init_devices(void)
{
cli(); //disable all interrupts
XMCRA = 0x00; //external memory
XMCRB = 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
}
int main(void)
{
init_devices();
while(1){
PORTC = PINA;
}
return 0;
}
>안녕하십니까? 친절한 답변 감사드립니다.
>답변의 내용을 기준으로 점검한 결과는 다음과 같습니다.
>
>1. 스위치에 연결된 포트가 다른 소자가 붙어 있는 경우 ==> 이상 없음 (다른 MCU에서 확인함)
>2. 입력단자에 디폴트값이 없는 경우 (풀업이나 풀다운 존재)
> ==> 현재 입력용 스위치는 풀업 저항을 달아서 사용하고 있고
> ==> 포트 PORTA를 하기의 프로그램과 같이 "0xFF"초기화 하고 난 동작 결과 입니다.
>
> 보유제품 Atmega 128 PRO ==> 계속 PINA의 값이 0x01값으로 들어옴
> Atmega 128 PRO ==> 정상 작동
> Atmega 128 PL ==> 정상 작동
> Atmega 128 RAM ==> 정상 작동
>
>Atmega 128 PRO 모듈 한개가 지속적으로 문제가 계속 발생하는 군요..
>수리한지 1주정도 된것 같은데 다시 A/S를 요청해야 할 것 같습니다.
>
>
>void port_init(void)
>{
> PORTA = 0xFF;
> 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 = 0xff;
>}
>
>
>//call this routine to initialize all peripherals
>void init_devices(void)
>{
> //stop errant interrupts until set up
> cli(); //disable all interrupts
> XMCRA = 0x00; //external memory
> XMCRB = 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
>}
>
>int main(void)
>{
>
> init_devices();
>
> while(1){
> PORTC = PINA;
> }
> return 0;
>}
>>
>>안녕하세요
>>
>>하드웨어와 코드상 문제가 없는 경우에 입력이 정상적이지 못한 경우는
>>1. 스위치에 연결된 포트가 다른 소자가 붙어 있는 경우
>>2. 입력단자에 디폴트값이 없는 경우 ( 풀업이나 풀다운 존재)
>>3. 레지스터를 초기화 한다.
>>
>>예) 아래처럼 잘못된 동작을 방지하기 위해 초기화 함수를 보통 사용합니다.
>>//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
>>}
>>입력으로 쓸 경우는 보통 외부 풀업저항을 대신하여 내부 풀업을 걸어서 사용합니다.
>> DDRA = 0x00;
>> PORTA = 0xFF;
>>
>>
>>
>>수고하세요
>>
>>>궁금한 사항이 있어 질문 드립니다.
>>>
>>> 먼저 전에 A/S 요청한 Atmega 128 PRO 모듈 2개 관련 하여 문의 드립니다.
>>> A/S 받은 제품 PORT의 출력은 정상적으로 동작하는 것을 LED를 보고 확인 하였습니다.
>>> 반면 PORT를 입력용으로 사용하려는데 문제가 발생하였습니다.
>>> 전체적인 PORT를 확인할 수 없어서 우선 증상만 간단하게 작성하겠습니다.
>>>
>>> PORTA는 입력용 PORTC는 출력용으로 사용하려 합니다. VCC
>>> 아래철 간단하게 코딩을 하였고 |
>>> R1
>>> DDRA = 0x00 -- |
>>> PORTA = 0x00 (SWITCH 사용) GND----- o o------PORTA (스위치 회로)
>>> DDRC = 0xFF
>>> PORTC = 0xFF (LED 사용) VCC---R1---LED---PORTC (LED 회로)
>>>
>>> PORTC = PINA ===> 문제 발생 값이 0x01을 읽음
>>>
>>>
>>>첫번째 Pro 모듈은 PORTA를 입력용으로 사용시, PINA 값을 읽으면 값이 0x01가 읽히는 문제가 발생합니다. 반면 두번째 Pro 모듈은 스위치와 LED가 연결되어있을때는 정상인데, 스위치쪽을 보드에서 분리하면 PINA 값이 0x01로 변경이 되는 군요
>>>
>>>
>>>
>>>
>>>
>>
>
관리자 답변
안녕하세요? 고객님,
스위치 입력에 대한 테스트는 아래 코드를 통해서 하실 수가 있습니다.
점검하여 보시기 바랍니다.
- 아래 -
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=TS8&select_arrange=headnum&desc=asc&no=229
또한, 포트 출력은 모두 테스트 하며, 포트 출력 테스트에 통과하지 못하면 본사에서 제품이 출고되지 않습니다. 실제 테스트 하는 소스는 아래와 조금 다르긴 하지만, 거의 유사합니다.
테스트가 가능하실 겁니다. 테스트 담당자가 별도의 소스를 테스트 절차에 맞게 수정하여 사용하고 있어서, 아래의 소스를 참고하시기를 권고드립니다.
- 아래 -
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=포트&select_arrange=headnum&desc=asc&no=248
혹시 모듈을 AB-M128PRO-A 라는 보드 즉, KD-128PRO-C 킷트의 메인보드에 연결한 상태로 테스트 중이시라면, 포트A가 세븐세그먼트에 연결되어 있음을 확인하시기 바랍니다. PA0의 테스트를 위해서는 R112를 제거하시고, 또한, 모듈의 전면에 보면 LED가 하나 있는 데, 그게 PA0에 붙어 있는 겁니다. 그래서, LED 쪽으로 풀업 비슷하게 붙어 있는 경우가 되는 데, 그래서 1로 인식될 수도 있습니다. 체크해 보시기 바랍니다.
감사합니다.
>일주일전 PRO 2개와 PL 1개 수리 및 점검을 위해 A/S를 요청 하였습니다.
>
>결국 PRO 1개는 Chip을 교체를 하게 되었는데, 수리 후 제품을 받고 어제 테스트를 수행해 보니 PORT 출력은 LED 동작으로 모든 확인이 가능하였습니다. 그래서 제품이 모두 잘 동작한다고 생각했는데...
>
>스위치 입력용으로 PORTA에 대한 PINA 값을 읽었을때 값이 정상적으로 나오지 않는 문제를 발견하였습니다. 하기와 같이 코드를 수정하고 제품을 테스트를 수행하였는데도 다음과 같은 결과가 계속적으로 나오는데 A/S를 보내야 될 것 같은데, A/S를 보내기 전 포트 입력에 대한 별도의 점검 프로그램이 있으시면 제가 제품의 고장 유무를 확인 하는데 도움이 될 것 같습니다.
>
>그리고 A/S 또는 재품 점검 시 포트 출력에 대한 점검도 하시는지가 궁금합니다.
>
> 보유제품 Atmega 128 PRO ==> 계속 PINA의 값이 0x01값으로 들어옴
> Atmega 128 PRO ==> 정상 작동
> Atmega 128 PL ==> 정상 작동
> Atmega 128 RAM ==> 정상 작동
>
>
>
>void port_init(void)
>{
> PORTA = 0xFF;
> 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 = 0xff;
>}
>
>
>void init_devices(void)
>{
> cli(); //disable all interrupts
> XMCRA = 0x00; //external memory
> XMCRB = 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
>}
>
>int main(void)
>{
>
> init_devices();
>
> while(1){
> PORTC = PINA;
> }
> return 0;
>
>}
>
>
>>안녕하십니까? 친절한 답변 감사드립니다.
>>답변의 내용을 기준으로 점검한 결과는 다음과 같습니다.
>>
>>1. 스위치에 연결된 포트가 다른 소자가 붙어 있는 경우 ==> 이상 없음 (다른 MCU에서 확인함)
>>2. 입력단자에 디폴트값이 없는 경우 (풀업이나 풀다운 존재)
>> ==> 현재 입력용 스위치는 풀업 저항을 달아서 사용하고 있고
>> ==> 포트 PORTA를 하기의 프로그램과 같이 "0xFF"초기화 하고 난 동작 결과 입니다.
>>
>> 보유제품 Atmega 128 PRO ==> 계속 PINA의 값이 0x01값으로 들어옴
>> Atmega 128 PRO ==> 정상 작동
>> Atmega 128 PL ==> 정상 작동
>> Atmega 128 RAM ==> 정상 작동
>>
>>Atmega 128 PRO 모듈 한개가 지속적으로 문제가 계속 발생하는 군요..
>>수리한지 1주정도 된것 같은데 다시 A/S를 요청해야 할 것 같습니다.
>>
>>
>>void port_init(void)
>>{
>> PORTA = 0xFF;
>> 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 = 0xff;
>>}
>>
>>
>>//call this routine to initialize all peripherals
>>void init_devices(void)
>>{
>> //stop errant interrupts until set up
>> cli(); //disable all interrupts
>> XMCRA = 0x00; //external memory
>> XMCRB = 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
>>}
>>
>>int main(void)
>>{
>>
>> init_devices();
>>
>> while(1){
>> PORTC = PINA;
>> }
>> return 0;
>>}
>>>
>>>안녕하세요
>>>
>>>하드웨어와 코드상 문제가 없는 경우에 입력이 정상적이지 못한 경우는
>>>1. 스위치에 연결된 포트가 다른 소자가 붙어 있는 경우
>>>2. 입력단자에 디폴트값이 없는 경우 ( 풀업이나 풀다운 존재)
>>>3. 레지스터를 초기화 한다.
>>>
>>>예) 아래처럼 잘못된 동작을 방지하기 위해 초기화 함수를 보통 사용합니다.
>>>//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
>>>}
>>>입력으로 쓸 경우는 보통 외부 풀업저항을 대신하여 내부 풀업을 걸어서 사용합니다.
>>> DDRA = 0x00;
>>> PORTA = 0xFF;
>>>
>>>
>>>
>>>수고하세요
>>>
>>>>궁금한 사항이 있어 질문 드립니다.
>>>>
>>>> 먼저 전에 A/S 요청한 Atmega 128 PRO 모듈 2개 관련 하여 문의 드립니다.
>>>> A/S 받은 제품 PORT의 출력은 정상적으로 동작하는 것을 LED를 보고 확인 하였습니다.
>>>> 반면 PORT를 입력용으로 사용하려는데 문제가 발생하였습니다.
>>>> 전체적인 PORT를 확인할 수 없어서 우선 증상만 간단하게 작성하겠습니다.
>>>>
>>>> PORTA는 입력용 PORTC는 출력용으로 사용하려 합니다. VCC
>>>> 아래철 간단하게 코딩을 하였고 |
>>>> R1
>>>> DDRA = 0x00 -- |
>>>> PORTA = 0x00 (SWITCH 사용) GND----- o o------PORTA (스위치 회로)
>>>> DDRC = 0xFF
>>>> PORTC = 0xFF (LED 사용) VCC---R1---LED---PORTC (LED 회로)
>>>>
>>>> PORTC = PINA ===> 문제 발생 값이 0x01을 읽음
>>>>
>>>>
>>>>첫번째 Pro 모듈은 PORTA를 입력용으로 사용시, PINA 값을 읽으면 값이 0x01가 읽히는 문제가 발생합니다. 반면 두번째 Pro 모듈은 스위치와 LED가 연결되어있을때는 정상인데, 스위치쪽을 보드에서 분리하면 PINA 값이 0x01로 변경이 되는 군요
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>
|
||||
| 6114 | 답변완료강좌(avr)에 있는 파일들 다운이 안되네요..ㅎㅎ | 김성민 | 2011-02-08 | 1,405 |
|
ㅎㅎㅎㅎ
PDF파일은 열리는데 예제 다운이 안되네요..ㅎㅎ
관리자 답변
안녕하세요
PDF 열린 상태에서 사본저장을 하세요
아니면 마우스 우클릭 다름이름으로 저장하시면 됩니다.;
수고하세요
>ㅎㅎㅎㅎ
>
>PDF파일은 열리는데 예제 다운이 안되네요..ㅎㅎ
|
||||
| 6113 | 답변완료AM-CS2P, AD-USBISP-L, AB-M128-B, SE-SM9K 2개를 이용해 회로를 구성하려합니다. | 최민수 | 2011-02-08 | 1,276 |
|
AB-M128-B,AD-USBISP-L을 연결하여 usb에서 전원을 공급받을 예정입니다.
(전원공급기가 구성품에 포함안된듯하여..)
그리고 AB-M128-B의 전원출력을 이용하여 AM-CS2P에 전원 공급을 하고
AM-CS2P에 SE-SM9K 2개를 연결하여 구동할 예정입니다.
여기서 질문입니다.
1)외부전원없이 usb전원만으로 모든 회로 및 스테핑 모터를 구동할 수 있는지요?
2)그리고 구성품에는 케이블이 포함안된것 같던데... AB-M128-B의 포트와 AM-CS2P포트를 연결할 수 있는 케이블은 포함안되있나요? 포함안되있다면 구매는 가능한지?
3)전원부족으로 외부전원이 필요하다면 AB-M128-B의 전원연결아답터의 내경(2파이? 2.5파이?)과 AM-CS2P의 전원 공급 케이블 좀 가르쳐주세요!
4)아..그리고 usb전원으로 부족하다면 AB-M128-B에 전원어답터연결하고 AB-M128-B의 전원출력부분에 AM-CS2P의 전원입력 부분을 연결하여 구동가능한가요?
질문이 많아서 죄송합니다! ㅠ
관리자 답변
안녕하세요
1
부하가 많이 걸리는 모터류는 USB 전원으로 사용할수 없습니다.
별도의 충분한 전류, 전압의 전원을 사용하시기 바랍니다.
그리고 스텝모터는 보통 12 ~24 볼트입니다.
2
박스케이블은 제품소개에 있습니다. 전원용 2핀 케이블
http://www.newtc.co.kr/product_SE-2X520.php
본사로 전화로 주문하시면 됩니다.
3
아탑터는 사이즈는 외경 5파이, 내경 2파이 입니다.
모터용 아탑터는 12볼트에 1A~xA 이상을 사용하세요
스테핑 모터용 추천 전원은 100W-24V 입니다. 아래 SMPS가 잘 동작됩니다.
- 아래 -
http://www.partsland.co.kr/shop/shopdetail.html?branduid=51872&xcode=006&mcode=001&scode=&type=X&search=&sort=brandname
수고하세요
>AB-M128-B,AD-USBISP-L을 연결하여 usb에서 전원을 공급받을 예정입니다.
>(전원공급기가 구성품에 포함안된듯하여..)
>그리고 AB-M128-B의 전원출력을 이용하여 AM-CS2P에 전원 공급을 하고
>AM-CS2P에 SE-SM9K 2개를 연결하여 구동할 예정입니다.
>여기서 질문입니다.
>
>1)외부전원없이 usb전원만으로 모든 회로 및 스테핑 모터를 구동할 수 있는지요?
>2)그리고 구성품에는 케이블이 포함안된것 같던데... AB-M128-B의 포트와 AM-CS2P포트를 연결할 수 있는 케이블은 포함안되있나요? 포함안되있다면 구매는 가능한지?
>3)전원부족으로 외부전원이 필요하다면 AB-M128-B의 전원연결아답터의 내경(2파이? 2.5파이?)과 AM-CS2P의 전원 공급 케이블 좀 가르쳐주세요!
>4)아..그리고 usb전원으로 부족하다면 AB-M128-B에 전원어답터연결하고 AB-M128-B의 전원출력부분에 AM-CS2P의 전원입력 부분을 연결하여 구동가능한가요?
>
>질문이 많아서 죄송합니다! ㅠ
|
||||
| 6112 | 답변완료avr128 development board & usb-isp v03(ad-usbisp v3) | 김환상 | 2011-02-08 | 1,409 |
|
codevision에서 프로그램을 작성후 사이트에서 본메뉴얼데로 설정후 write를 했는데 사진처럼 에러가 뜨는데 왜그런건가요?
관리자 답변
안녕하세요
http://www.newtc.co.kr/board/data/faq/AD_USBISP_V03_사용법.pdf
19~21 페이지를 보시고 하시면 됩니다. 그전에 1~5페이를 먼저 하신후
포트를 맞추어 사용하세요.
그래도 문제가 있으시면 본사로 오시거나, 보내어 점검을 받아
보시길 바랍니다.
fuse 관련 셋팅을 한번이라도 잘못하시면 칩을 사용할수 없는 경우도 발생됩니다.
수고하세요
>codevision에서 프로그램을 작성후 사이트에서 본메뉴얼데로 설정후 write를 했는데 사진처럼 에러가 뜨는데 왜그런건가요?
|
||||
| 6111 | 답변완료AVR 용 USB-ISP V03 ( Model : AD-USBISP V03(-L) ) | 이준수 | 2011-02-08 | 1,306 |
|
AVR 용 USB-ISP V03 ( Model : AD-USBISP V03(-L) ) 제품 설명서에
보면은요 3.3V/5V 호환가능이라고 되어있는데요
3.3V는 어떻게 쓰는건가요?
이번에 아트메가128L-8mu를 사용하였는데요
동작전압을 3.3V로 설계를 하였습니다.
그외에 붙어 있는 모듈들이 3.3V 동작이거든요
AVR 용 USB-ISP V03 ( Model : AD-USBISP V03(-L) )는 전압을 체크해보니 5V나오더라구요
그래서 점퍼를 하는 것이 있는지 궁금합니다.
좋은 답변 부탁드립니다.(자세하게 부탁드립니다.)
관리자 답변
안녕하세요
USB-ISP V03 있는 타겟보드 전원용(5볼트) 팁 스위치를 off 하시면 됩니다.
그러나 타겟보드에 들어가는 전원3.3볼트는 유저가 직접 해야합니다.
http://www.newtc.co.kr/download/AD-USBISP/AD-USBISP_V03.pdf
메뉴얼에 3쪽을 보시길 바랍니다.
수고하세요
>AVR 용 USB-ISP V03 ( Model : AD-USBISP V03(-L) ) 제품 설명서에
>
>보면은요 3.3V/5V 호환가능이라고 되어있는데요
>
>3.3V는 어떻게 쓰는건가요?
>
>이번에 아트메가128L-8mu를 사용하였는데요
>
>동작전압을 3.3V로 설계를 하였습니다.
>
>그외에 붙어 있는 모듈들이 3.3V 동작이거든요
>
>AVR 용 USB-ISP V03 ( Model : AD-USBISP V03(-L) )는 전압을 체크해보니 5V나오더라구요
>
>그래서 점퍼를 하는 것이 있는지 궁금합니다.
>
>좋은 답변 부탁드립니다.(자세하게 부탁드립니다.)
>
>
|
||||
| 6110 | 답변완료Atmega32의 ADC 두채널의 값을 읽는 방법... | 이낙영 | 2011-02-08 | 1,412 |
|
Atmega32를 사용해서 2채널 전압계측기를 만들고있습니다.
ADC0, ADC1에 전압을 입력했습니다. 1스켄에 ADC0, ADC1의 값을
읽고자 하는데 잘 되질 않습니다.
제가 한 방법은 아래와 같습니다.
//---ADC 초기화 부분---
ADC setting
ADCSRA = 0xA5;
ADMUX = 0x40;
ADCSRA = 0xa7;
//---ADC 값 읽는 부분---
while(1) {
ADMUX = 0x40; //ADC.0
ADCSRA |= 0x40; //ADC 변환 시작
while( (ADCSRA & 0x10) == 0); //ADC 완료 시까지 기다림
value1 = (ADCH << 8); //결과저장
value1 |= ADCL;
ADCSRA |= 0x10; //ADC 레지스터의 값을 클리어
ADMUX = 0x41; //ADC.1
ADCSRA |= 0x40; //ADC 변환 시작
while((ADCSRA & 0x10) == 0); //ADC 완료 시까지 기다림
value2 = (ADCH << 8); //결과저장
value2 |= ADCL;
ADCSRA |= 0x10; //ADC 레지스터의 값을 클리어
}
** 현상 **:
ADC 채널의 값이 변하지 않음.
value1의 값과 value2의 값이 항상 같게 나옴.
가변 저항을 돌리면 value1의 값은 변함.
즉, ADC0의 ADCH, ADCL의 값이 ADC1의 값에 적용 됨.
** 질문 **
어떻게 해야 ADC0, ADC1의 값을 동시에 읽을 수 있는지 궁금합니다.
관리자 답변
안녕하세요
원래 AVR은 ADCL부터 읽고 ADCH를 읽어야 합니다.
소스를 보니 반대로되어 있어서, ADC값이 제대로 읽히지 않은 것 같습니다.
수정하여 보세요.
킷트의 하드웨어 및 예제코드에 대해서는 써포트를 하지만
그외에 대해서는 써포트를 하지않습니다.
아래 ADC관련 예제코드를 분석해 보시길 바랍니다.
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=adc&select_arrange=headnum&desc=asc&no=212
http://www.newtc.co.kr/board/view.php?id=pds&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=adc&select_arrange=headnum&desc=asc&no=390
수고하세요
>Atmega32를 사용해서 2채널 전압계측기를 만들고있습니다.
>
>ADC0, ADC1에 전압을 입력했습니다. 1스켄에 ADC0, ADC1의 값을
>읽고자 하는데 잘 되질 않습니다.
>
>제가 한 방법은 아래와 같습니다.
>
>//---ADC 초기화 부분---
>    ADC setting
>    ADCSRA = 0xA5;
>    ADMUX = 0x40;  
>    ADCSRA = 0xa7;
>
>//---ADC 값 읽는 부분---
>while(1) {
>   ADMUX = 0x40;     //ADC.0
>   ADCSRA |= 0x40;    //ADC 변환 시작
>   while( (ADCSRA & 0x10) == 0); //ADC 완료 시까지 기다림
>   value1 = (ADCH << 8); //결과저장
>   value1 |= ADCL;
>   ADCSRA |= 0x10; //ADC 레지스터의 값을 클리어
>
>   ADMUX = 0x41;      //ADC.1
>   ADCSRA |= 0x40;    //ADC 변환 시작
>   while((ADCSRA & 0x10) == 0); //ADC 완료 시까지 기다림
>        
>   value2 = (ADCH << 8); //결과저장
>   value2 |= ADCL;
>   ADCSRA |= 0x10; //ADC 레지스터의 값을 클리어
>}
>
>** 현상 **:
>ADC 채널의 값이 변하지 않음.
>value1의 값과 value2의 값이 항상 같게 나옴.
>가변 저항을 돌리면 value1의 값은 변함.
>즉, ADC0의 ADCH, ADCL의 값이 ADC1의 값에 적용 됨.
>
>** 질문 **
>어떻게 해야 ADC0, ADC1의 값을 동시에 읽을 수 있는지 궁금합니다.
|
||||
| 6109 | 답변완료질문입니다~ | 신정민 | 2011-02-08 | 1,332 |
|
얼마전 구입한 KD-128pro 가지고 프로그램 테스트를 아래와 같이 했습니다만 에러가 생기네요
컴파일러는 코드비전을 사용했습니다.
PORTG를 비트 단위로 LED ON/OFF 하려고 하는데
그부분에서 에러가 발생합니다. 어떻게 수정해야 하나요?
#include<mega128.h>
#include<delay.h>
void main(void)
{
unsigned int k=20;
DDRG=0x03;
PORTG=0x03;
while(k!=0)
{
delay_ms(500);
PORTG.0=1; => 에러
delay_ms(500);
PORTG.0=0; => 에러
k--;
}
}
관리자 답변
#define D0 0x01
#define D1 0x02
#define D2 0x04
#define D3 0x08
#define D4 0x10
#define D5 0x20
#define D6 0x40
#define D7 0x80
void main(void{
.......//초기화 루틴
PORTG |= D0;
delay_ms(500);
PORTG &= ~D0;
delay_ms(500);
.......
}
이런 식으로 하시는 것이 좋겠습니다.
수고하세요.
>얼마전 구입한 KD-128pro 가지고 프로그램 테스트를 아래와 같이 했습니다만 에러가 생기네요
>컴파일러는 코드비전을 사용했습니다.
>PORTG를 비트 단위로 LED ON/OFF 하려고 하는데
>그부분에서 에러가 발생합니다. 어떻게 수정해야 하나요?
>
>#include<mega128.h>
>#include<delay.h>
>void main(void)
>{
> unsigned int k=20;
> DDRG=0x03;
> PORTG=0x03;
> while(k!=0)
> {
> delay_ms(500);
> PORTG.0=1; => 에러
> delay_ms(500);
> PORTG.0=0; => 에러
> k--;
> }
>}
|
||||
