로그인 | 회원가입 | 주문 조회
총 10,748개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
5498 답변완료KD-128pro 시리얼 케이블 질문입니다 정영기 2010-07-20 1,216
제품구입시 들어있는 rs232케이블있잖아요 3개 암놈으로 구성되어있는거.. 거기 선 색깔이 검정 빨강 흰색 인데 어떤선들이 피씨쪽 tx rx gnd 입니까? ㅜㅜ 홈페이지에 올라와있는 사진을 봤는데 어떤게 피씨기준이고 위에서본건지 뒤에서본건지 숫자도 안맞고해서요 색깔로좀 알려주세요. 그리고 블루투스모듈을 이용할라그러는데 위쪽에 uart (3핀) 이랑 아래쪽 uart(4핀)이랑 차이가 뭔가요? 아래쪽은 VCC하나더있는거 같던데 그쪽에 VCC는 5v 출력인가요? 입력인가요?
관리자 답변 NEWTC · 2010-07-20
안녕하세요 선색깔로 구분하지 마시길 바랍니다. 3핀 컨넥터에 정보를 메뉴얼에 보시면 적혀 있습니다. http://www.newtc.co.kr/product_AM-128PRO.php >블루투스모듈을 이용할라그러는데 위쪽에 uart (3핀) 이랑 아래쪽 uart(4핀)이랑 차이가 뭔가요? >아래쪽은 VCC하나더있는거 같던데 그쪽에 VCC는 5v 출력인가요? 입력인가요? 컨넥터 4핀은 ttl 레벨의 UART 이고 - 모듈이나 동일한 보드와 같은 통신전위가 5볼트를 사용하는 장비와 연결할때 사용합니다. 컨넥터 3핀은 PC 레벨의 rs232 입니다. - pc와 같은 통신전압 10볼트 이상의 전위로 통신하는 장비와 연결할때 사용되는 컨넥터 입니다. vcc는 5볼트 전압이 출력되다는 말입니다.; 수고하세요 >제품구입시 들어있는 rs232케이블있잖아요 3개 암놈으로 구성되어있는거.. > >거기 선 색깔이 검정 빨강 흰색 인데 > >어떤선들이 피씨쪽 tx rx gnd 입니까? ㅜㅜ > >홈페이지에 올라와있는 사진을 봤는데 > >어떤게 피씨기준이고 위에서본건지 뒤에서본건지 숫자도 안맞고해서요 > >색깔로좀 알려주세요. > > >그리고 > >블루투스모듈을 이용할라그러는데 위쪽에 uart (3핀) 이랑 아래쪽 uart(4핀)이랑 차이가 뭔가요? > >아래쪽은 VCC하나더있는거 같던데 그쪽에 VCC는 5v 출력인가요? 입력인가요?
5497 답변완료windows7 에서 usbisp를 사용할수없습니다. 온진호 2010-07-19 1,321
AVR용 USB-ISP 라이트 AD-USBISP-L입니다. 윈도7용으로 드라이버 설치했습니다. 하지만 아래 그림과 같이 올바르게 설치되지 않습니다. 관리자권환으로도 해보고 호환성을 xp로 바꾸고도 해보았지만 같은 결과입니다. 해결방안좀 알려주세요
관리자 답변 NEWTC · 2010-07-20
안녕하세요 사용하시는 win7 32 /64bit 확인하시길 바랍니다. Windows7 64비트 에서 USBISP 드라이버 설치법 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=41 Windows7 32비트 에서 USBISP 드라이버 설치법 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=34 XP라는 부분은 XP가 깔린 PC에서 해야 한다는 뜻입니다. 7의 XP 가상화모드 등의 말이 아닙니다. 비트에 따라 설치하는 방법이 틀립니다. 수고하세요 >AVR용 USB-ISP 라이트 AD-USBISP-L입니다. > >윈도7용으로 드라이버 설치했습니다. >하지만 아래 그림과 같이 올바르게 설치되지 않습니다. >관리자권환으로도 해보고 호환성을 xp로 바꾸고도 해보았지만 같은 결과입니다. > >해결방안좀 알려주세요
5496 답변완료avr128 pro로 i2c를 사용하고 싶습니다. 박명규 2010-07-19 1,265
제가 동영상 강좌랑 초보 강좌 들어가서 공부를 해봤는데요 주변에 여러가지 각종 포트가 많은데.. i2c라인은 어떻게 빼서 연결을 해야 할지 몰라서요..
관리자 답변 NEWTC · 2010-07-19
안녕하세요 http://www.atmel.com/dyn/products/product_card.asp?part_id=4574 위링크를 보시면 mega128에 관련된 시트가 있습니다. 강좌를 다보셨다면 칩에 대한 시트를 차분히 보시길 바랍니다. i2c > TWI 라고도 부릅니다. 두개의 라인을 이용해 통신을 하는것입니다. UART나 SPI 하는방법 비슷비슷 합니다. 시트에서 Pin Configurations 보시면 SCL(PD0), SDA (PD1) 핀이 있습니다. 하나는 클럭라인이고 하나는 데이터라인입니다. 질문을 하실때는 구체적으로 질문을 해주셨으면 합니다. 수고하세요 >제가 동영상 강좌랑 초보 강좌 들어가서 공부를 해봤는데요 > >주변에 여러가지 각종 포트가 많은데.. > >i2c라인은 어떻게 빼서 연결을 해야 할지 몰라서요.. > >
5495 답변완료AD-USBISP 관련 윤재호 2010-07-19 1,299
아래 글을 남긴 윤재호라고 합니다. ad-usbisp의 v01드라이버를 설치하려고 하는데 setup화일이 없는데요. 어떻게 설치하는 거죠?
관리자 답변 NEWTC · 2010-07-19
안녕하세요 사용하시는 USBUSP가 버젼이 v01 은 자료실에 있습니다. 직접 수동으로 드라이버를 설치 하셔야합니다. 업로드 된 파일은 클릭하시면 자동으로 드라이버가 설치가 됩니다. 수고하세요 >아래 글을 남긴 윤재호라고 합니다. >ad-usbisp의 v01드라이버를 설치하려고 하는데 setup화일이 없는데요. >어떻게 설치하는 거죠? >
5494 답변완료DC모터를 구동해서 동작모형을 만들어야하는데요... 설경동 2010-07-19 1,533
안녕하십니까? 저는 모형제작을 하고 있는 사람입니다. 지금까지 동작모형들을 제작하면서 컨트롤러를 주문제작해서 써왔습니다. 이번에 간단한 모형제작이라 자체적으로 해보려 질문드립니다. 구동스위치 > 1번 DC모터 구동 > 스위치1(정지) > 타임(조절 5분 이내) > 역방향구동 > 스위치2(스톱 / 다음구동때까지 대기) > 2번 DC모터도 동일함 단 동시에 스타트하되 1번과 2번 모터작동시 구동거리가 약간 다름. 이런 조건입니다 귀사의 완성품 보드및 확장보드를 이용해서 제어가 가능할지 문의드립니다. 긴글 읽어주셔서 감사합니다. 제 연락처는 010-4387-0014입니다.
관리자 답변 설경동 · 2010-07-19
추가질문입니다. 모터구동과 함께 LED램프도 켜야합니다. 그리고 모터는 DC일반 기어드모터 12볼트용입니다.
5493 답변완료USB T0 SERIAL 스마트폰 갤럭시S에서 사용여부? 파란들 2010-07-19 1,361
안녕하세요? 현재 USB TO SERIAL 제품, AD-USPISP제품을 사용하고 있는데 이 제품을 갤럭시S에서 사용하면 가능한지요? 물론, 컨넥터 타입이 작은 것으로 교환하고요... 갤럭시S - 삼성스마트폰, USB2.0을 지원, 안드로이드OS... AD-USPISP의 컨넥터타입을 교환해서 가능하다면 모바일폰용은 판매계획 없으신지요? 없으시다면 제가 직접 구매하여 교체해도 되는지요? 답변 부탁드립니다. ^*^
관리자 답변 NEWTC · 2010-07-19
안녕하세요 AD-USPISP UART 레벨이 5볼트입니다. 직접 제작해서 사용해야 할것 같습니다. 모바일에 사용되는 전압과는 틀립니다. 모바일 칩에 사용되는 전압은 3.3 또는 1.8V 정도 입니다. 핸드폰에 사용되는 UART 전압과 틀려 칩에 무리가 갈수있습니다. 연결하실려는 핸드폰의 스펙을 확인해서 사용하시길 바랍니다. 수고하세요 > 안녕하세요? > 현재 USB TO SERIAL 제품, AD-USPISP제품을 사용하고 있는데 이 제품을 갤럭시S에서 > 사용하면 가능한지요? 물론, 컨넥터 타입이 작은 것으로 교환하고요... > > 갤럭시S - 삼성스마트폰, USB2.0을 지원, 안드로이드OS... > > AD-USPISP의 컨넥터타입을 교환해서 가능하다면 모바일폰용은 판매계획 없으신지요? > 없으시다면 제가 직접 구매하여 교체해도 되는지요? > > 답변 부탁드립니다. > > ^*^ > >
5492 답변완료노트북에 프린트포트가 없을땐.. 하태경 2010-07-19 1,219
안녕하세요 몇일전 KD-atmega128 pro를 구매해 개발환경을 만드는데 사용하는 노트북엔 프린트포트가 없어서 usb변환용 케이블을 사용했는데 인식을 못하는거 같습니다 실행시 'LPT1 cannot open'이라는 메세지가 나타나는데 따로 부품장비가 있는건가요
관리자 답변 NEWTC · 2010-07-19
안녕하세요 노트북은 패럴러 포트가 잘 없습니다. USB to 패럴러 변환장비는 프린터용도로만 사용이 가능합니다. LPT용 모든 기능을 지원안하기 때문입니다.. 개발장비를 위해서 현재 팔리고 있는 USB to 패러렐은 사용할 수가 없습니다. 노트북용으로 다운로드기기를 사용하시려면 AVR용 USB-ISP 를 추천합니다. http://www.newtc.co.kr/product_AD-USBISP.php 수고하세요 >안녕하세요 >몇일전 KD-atmega128 pro를 구매해 개발환경을 만드는데 >사용하는 노트북엔 프린트포트가 없어서 usb변환용 케이블을 사용했는데 인식을 못하는거 같습니다 >실행시 'LPT1 cannot open'이라는 메세지가 나타나는데 >따로 부품장비가 있는건가요
5491 답변완료AD-USBISP 문의 이한섭 2010-07-19 1,291
현제 보드는 KD-128PRO 사용중입니다. USB-ISP 는 AD-USBISP 사용중이구요 잘작동하는데 AD-USBISP에 회로도가 어떻게 되는건가요 현제 ZBS-100 지그비 모듈을 사용하려합니다. 128쪽에 하나 컴퓨터쪽에 하나 하려는데 잘안되네요. 분명 usb-isp 로해서 uart 로 보면 잘뜨고 그 부분을 지그비 부분만 바꿨는데 ... 혹시 usb-isp 쪽 uart 에 지그비 모듈을 장착하면 안되는건가요?.
관리자 답변 NEWTC · 2010-07-19
안녕하세요 AD-USBISP는 키트로 판매되는 제품이 아니라서 도면 공개는 하지않습니다. ZBS-100 지그비 모듈는 본사에서 판매되는 제품이 아니라서 뭐라고 답변하기 힘듭니다. ^^;; KD-128PRO UART로 테스트를 하셨다면 , ZBS-100 지그비 모듈이 정상동작하는지 확인해 보시길 바랍니다. 확인이 불가능 하시면 구입처에 문의 해보시길 바랍니다. >혹시 usb-isp 쪽 uart 에 지그비 모듈을 장착하면 안되는건가요?. 장착은가능하고요 4핀 커넥터에 5V ,RX,TX, GND 로 되어 있습니다. ZBS-100 지그비 모듈에 사용되는 전압값을 확인해서 연결하셔야 합니다. 수고하세요 > > >현제 보드는 KD-128PRO 사용중입니다. > >USB-ISP 는 AD-USBISP 사용중이구요 > >잘작동하는데 > >AD-USBISP에 회로도가 어떻게 되는건가요 > >현제 > >ZBS-100 지그비 모듈을 사용하려합니다. > >128쪽에 하나 컴퓨터쪽에 하나 하려는데 > >잘안되네요. > >분명 usb-isp 로해서 uart 로 보면 잘뜨고 > >그 부분을 지그비 부분만 바꿨는데 ... > >혹시 usb-isp 쪽 uart 에 지그비 모듈을 장착하면 안되는건가요?.
5490 답변완료spien 을 언체크된 상태에서 프로그램해 버렸습니다.. 부산대 2010-07-17 1,215
실수로 그람 spien이 언체크 된상태에서 프로그램을 해버렸는데 이 경우 mcu를 못쓰게 된다고 들었습니다. 만약 a/s을 맡기게 되면 비용이 얼마나 드는 지요. am128pl 모델입니다.
관리자 답변 NEWTC · 2010-07-17
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 본사로 보내 보세요~~ 퓨즈만 바꿔서 될 가능성이 많은 데요. 이 경우 무상입니다. 택배비만 부담하시면 되요...테스트 해 보고 연락 드리겠습니다. 수고하세요. >실수로 그람 spien이 언체크 된상태에서 프로그램을 해버렸는데 >이 경우 mcu를 못쓰게 된다고 들었습니다. > >만약 a/s을 맡기게 되면 비용이 얼마나 드는 지요. >am128pl 모델입니다.
5489 답변완료AD-USBISP 관련 윤재호 2010-07-16 1,303
ad-usbisp를 보유하고 있는데 이장비로 attiny2313 동작시킬 수 있죠? entering programming mode FAILED Leaving programming mode OK 라는 에러가 발생하는데 왜그런거죠? 그리고 ad-usbisp가 고장일 수 있습니까? 제가 소유하고 있는제품이 AD-USBISP 이라고 뒷면에 적혀있는데 v01으로 드라이버가 설치가 안되는 것 같아 v03으로 설치했는데 USB-serial-port로 장치관리자에서 잡혔습니다 이렇게 해도 괜찮나요? V01에는 실행화일이 없는데 어떻게 설치하죠?
관리자 답변 NEWTC · 2010-07-17
안녕하세요? 고객님, ATtiny2313 동작 잘합니다. 예전에 보드 만들어서 잘 테스트 했었습니다. 그런데, 가지고 계신 USBISP에 잘 보면 PCB 에 AD-USBISP V02 또는 AD-USBISP 또는 AD-USBISP V03 이라고 적혀 있을 겁니다. 뭐라고 적혀 있나요? 각각 AD-USBISP ==> 버전 V01 입니다. AD-USBISP V02 ==> 버전 V02 입니다. AD-USBISP V03 ==> 버전 V03 입니다. 거기에 맞춰서 드라이버 설치하시면 되구요. 사용하시는 OS에 맞게 쓰셔야 합니다. 자료실 가면 자세히 나와 있습니다. 잘 모르시겠으면, 여기에 사용하시는 OS와 뭐라고 적혀 있는 지 등을 적어 보세요. 그리고, 아래 메뉴얼 들을 참고하세요. 특히 사용법 메뉴얼을 참고하면 드라이버 설치부터 자세히 나와 있으니 참고 바랍니다. - 메뉴얼 - http://newtc.co.kr/download/AD-USBISP/AD-USBISP_V03.pdf - 사용법 메뉴얼 - http://newtc.co.kr/download/AD-USBISP/AD-USBISP_V03_사용법.pdf 그래도 잘 안되면, 다시 올려 주세요. 수고하세요~~ >ad-usbisp를 보유하고 있는데 이장비로 attiny2313 동작시킬 수 있죠? > > >entering programming mode FAILED >Leaving programming mode OK > >라는 에러가 발생하는데 왜그런거죠? > >그리고 ad-usbisp가 고장일 수 있습니까? > >제가 소유하고 있는제품이 AD-USBISP 이라고 뒷면에 적혀있는데 v01으로 드라이버가 설치가 안되는 것 같아 v03으로 설치했는데 USB-serial-port로 장치관리자에서 잡혔습니다 이렇게 해도 괜찮나요? > >V01에는 실행화일이 없는데 어떻게 설치하죠?
5488 답변완료저번에 글 올렸었던 김정훈 입니다. 김정훈 2010-07-16 1,208
제가 순간 화가나서 글을 올리긴 했는데.. 일단 사후에 이렇게 메일 주신점, 전화통화 해주신점 감사드립니다. 다시 한번 돌이켜 생각해보니, 자료들을 확실히 찾아보지도 않고 다짜고짜 질문한 것은... 제 불찰 이었던것 같습니다. 제가 사과 드리겠습니다. 죄송합니다. 제가 이번에 프로젝트를 진행하면서, 여기 올라온, 질문 답변 게시판이나 자료실에 있는 자료들 정말 큰 도움이 되었습니다. 감사드리구요..담당 엔지니어분, 저도 악의적인 마음이 있어서 글 올린 것 아니였습니다. 너무 제 입장만 생각하고 글 올린 것 같아서....죄송합니다. 주신다고 한 센서와 보드 이용해서 공부 열심히 하고, 가능하다면 작품도 하나 만들어서 까페에 올릴 수 있도록 하겠습니다. 항상 좋은 제품 만들어주셔서 감사합니다. 앞으로도 쭉 좋은 제품 많이 만들어 주셔서, 많은 사람들에게 도움이 되었으면 좋겠습니다.! 번창 하시길 바랄께요. 수고하십쇼.
관리자 답변 NEWTC · 2010-07-16
안녕하세요? 김정훈 고객님, 이렇게 다시 글 올려 주셔서 너무 감사드립니다. 저희도 최선을 다해서 보다 나은 서비스를 위해서, 항상 노력하겠습니다. 저희는 이번에도 한가지 한가지 이렇게 하나하나 배웠다고 생각하며, 항상 노력하고 있습니다. 부족한 부분을 이렇게 꾸짓어 주시는 부분도 저희 뉴티씨에 대한 기대치와 생각하는 마음이 높기 때문에 가능하다고 생각합니다. 저희는 그 기대치에 부응하는 회사가 되도록 더욱 노력하고 스스로를 채찍질하도록 하겠습니다. 다시 한 번 글 남겨 주신점에 감사드리며, 다음에 오시면 밥을 한 번 살테니, 언제 한 번 오세요~ 오셔서, 김정훈 입니다~ 라고 말씀하시면, 점심 식사 한 번 사도록 하겠습니다. 감사합니다. >제가 순간 화가나서 글을 올리긴 했는데.. >일단 사후에 이렇게 메일 주신점, 전화통화 해주신점 감사드립니다. >다시 한번 돌이켜 생각해보니, 자료들을 확실히 찾아보지도 않고 다짜고짜 질문한 것은... >제 불찰 이었던것 같습니다. 제가 사과 드리겠습니다. 죄송합니다. > >제가 이번에 프로젝트를 진행하면서, >여기 올라온, 질문 답변 게시판이나 자료실에 있는 자료들 정말 큰 도움이 되었습니다. >감사드리구요..담당 엔지니어분, 저도 악의적인 마음이 있어서 글 올린 것 아니였습니다. >너무 제 입장만 생각하고 글 올린 것 같아서....죄송합니다. > >주신다고 한 센서와 보드 이용해서 공부 열심히 하고, 가능하다면 작품도 하나 만들어서 >까페에 올릴 수 있도록 하겠습니다. >항상 좋은 제품 만들어주셔서 감사합니다. >앞으로도 쭉 좋은 제품 많이 만들어 주셔서, 많은 사람들에게 도움이 되었으면 좋겠습니다.! >번창 하시길 바랄께요. 수고하십쇼.
5487 답변완료ATMega128 프로그래밍 중 타이머 관련 조명혜 2010-07-16 1,393
귀사에서 ATMega개발 보드 을 구입하고 서보모터를 구동하기 위해 만든 코드&#160;&#160;입니다. #include <iom128v.h> #include<macros.h> #include<stdion.h> #define SERVO_PORT1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; PORTC #define t20ms&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;1350 #define t20mstimer_expired&#160;&#160;&#160;&#160;0&#160;&#160; #define ON&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;1 #define&#160;&#160;OFF #define MAX_SERVO&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;2 #define MIN&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;12 #define MAX&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;44 volatile int&#160;&#160;t100ustimer=0, servo[MAX_SERVO], servo_num; int prtchar(char c) { &#160;&#160;&#160;&#160;while (((UCS0A>>UDRE0)&)0x01) == 0) ; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; UDR0 = c; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return c; } int getchar(void) { &#160;&#160;&#160;&#160;while ((UCSR0A & 0x80) == 0); &#160;&#160;&#160;&#160;return UDR0; } void port_init(void) { PORTA = 0x00; DRA&#160;&#160;= 0x00; PORTB = 0x00; DDRB&#160;&#160;= 0x00; PORTC = 0x00; DDRC&#160;&#160;= 0x03; PORTD = 0x00; DDRD&#160;&#160;= 0x00; PORTE = 0x00; DDRE&#160;&#160;= 0x00; PORTF = 0x00; DDRF&#160;&#160;= 0x00; PORTG = 0x00; DDRG&#160;&#160;= 0x00; } //TIMER0 initialize - prescale:64 // WGM: Normal // desired value: 20uSec // actual value: 20.000uSec (0.0%) void timer0_init(void) { TCCR0 = 0x00; //stop ASSR&#160;&#160;= 0x00; //set async mode TCNT0 = 0xFB; //set count OCR0&#160;&#160;= 0x05; TCCR0 = 0x02; //start timer } #pragma interrupt_handler timer0_ovf_isr:17 void timer0_ovf_isr(void) { // TCNT0 = 0xEC; //reload counter value TCNT0 = 0xFB; //reload counter value if(t100ustimer > t20ms){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;t100ustimer = t20mstimer_expired; } t100ustimer++; for(servo_num=0;servo_num<2;servo_num++){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(servo[servo_num] > t100ustimer){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;SERVO_PORT1 = SERVO_PORT1|(0x01<<servo_num); &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}else{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;SERVO_PORT1 = SERVO_PORT1&(~(0x01<<servo_num)); &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} } } //UART0 initialize // desired baud rate: 115200 // actual: baud rate:111111 (3.7%) // 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; } /* #pragma interrupt_handler uart0_rx_isr:19 void uart0_rx_isr(void) { //uart has received a character in UDR } #pragma interrupt_handler uart0_udre_isr:20 void uart0_udre_isr(void) { //character transferred to shift register so UDR is now empty } #pragma interrupt_handler uart0_tx_isr:21 void uart0_tx_isr(void) { //character has been transmitted } */ //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up CLI(); //disable all interrupts XDIV&#160;&#160;= 0x00; //xtal divider XMCRA = 0x00; //external memory port_init(); timer0_init(); //timer1_init(); uart0_init(); MCUCR = 0x00; EICRA = 0x00; //extended ext ints EICRB = 0x00; //extended ext ints EIMSK = 0x00; TIMSK = 0x01; //timer interrupt sources ETIMSK = 0x00; //extended timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialized } void delay(int delaytime){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int i,j; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for(i=0;i<100;i++){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for(j=0;j<delaytime;j++){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} } // void main(void) { int i; unsigned char ch; init_devices(); for(i=0;i<MAX_SERVO;i++){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;servo[i]=0; } servo[0] = 79; servo[1] = 111; //insert your functional code here... printf("\\r\\n\\r\\n Testing Servo Motor Ver1.0\\r\\n"); while(1){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; scanf("%c", &ch); &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; printf("Value:%d / ",servo[0]); &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; printf("Value:%d\\r\\n",servo[1]); &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if((ch == 'a') || (ch == 'A')){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; servo[0]--; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; } &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if((ch == 'q') || (ch == 'Q')){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; servo[0]++; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if((ch == 's') || (ch == 'S')){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; servo[1]--; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; } &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if((ch == 'w') || (ch == 'W')){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; servo[1]++; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(ch == '3'){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;servo[0] = 66; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(ch == '2'){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;servo[0] = 79; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(ch == '1'){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;servo[0] = 109; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(ch == '6'){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;servo[1] = 80; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(ch == '5'){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;servo[1] = 111; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(ch == '4'){ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;servo[1] = 122; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(servo[0] <=67) servo[0] = 67; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(servo[0] >=130) servo[0] = 130; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(servo[1] <=79) servo[1] = 79; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(servo[1] >=123) servo[1] = 123; } } desired value 가 지금 20uSec로 되있는데 실제 oscilloscope 로 pulse 를 보면 최소벼화는 14us 로 나옵니다. 그러나 저의들은 모터에 들어오는&#160;&#160;pusle가 10us 로 변화 할때도 모터 구동가는 해야하는데 , Timer 부분을 지금 공부 하고 있지만 ,그래도 어떻게 수정해야 하는지 잘 몰라서 이렇게 글을 남깁니다. 꼭 해야하는 일이라서 부탁 드립니다. 감사합니다.
관리자 답변 NEWTC · 2010-07-16
안녕하세요 아래 함수 10us 셋팅관련함수입니다. //TIMER0 initialize - prescale:8 // WGM: Normal // desired value: 10uSec // actual value: 10.000uSec (0.0%) void timer0_init(void) { TCCR0 = 0x00; //stop ASSR = 0x00; //set async mode TCNT0 = 0xEC; //set count OCR0 = 0x14; TCCR0 = 0x02; //start timer } 강좌 를 보시면 타이머에 관련된 문서들이 있습니다. 그걸 참고하시거나 데이시트,서적을 보시길 바랍니다. 수고하세요 >귀사에서 ATMega개발 보드 을 구입하고 서보모터를 구동하기 위해 만든 코드 입니다. > >#include <iom128v.h> >#include<macros.h> >#include<stdion.h> > >#define SERVO_PORT1 PORTC > >#define t20ms 1350 >#define t20mstimer_expired 0 >#define ON 1 >#define OFF >#define MAX_SERVO 2 >#define MIN 12 >#define MAX 44 > >volatile int t100ustimer=0, servo[MAX_SERVO], servo_num; >int prtchar(char c) >{ > while (((UCS0A>>UDRE0)&)0x01) == 0) ; > > UDR0 = c; > return c; >} > >int getchar(void) >{ > while ((UCSR0A & 0x80) == 0); > return UDR0; >} > >void port_init(void) >{ > PORTA = 0x00; > > DRA = 0x00; > PORTB = 0x00; > DDRB = 0x00; > PORTC = 0x00; > DDRC = 0x03; > PORTD = 0x00; > DDRD = 0x00; > PORTE = 0x00; > DDRE = 0x00; > PORTF = 0x00; > DDRF = 0x00; > PORTG = 0x00; > DDRG = 0x00; >} > >//TIMER0 initialize - prescale:64 >// WGM: Normal >// desired value: 20uSec >// actual value: 20.000uSec (0.0%) >void timer0_init(void) >{ > TCCR0 = 0x00; //stop > ASSR = 0x00; //set async mode > TCNT0 = 0xFB; //set count > OCR0 = 0x05; > TCCR0 = 0x02; //start timer > >} > >#pragma interrupt_handler timer0_ovf_isr:17 >void timer0_ovf_isr(void) >{ > // TCNT0 = 0xEC; //reload counter value > TCNT0 = 0xFB; //reload counter value > if(t100ustimer > t20ms){ > t100ustimer = t20mstimer_expired; > } > t100ustimer++; > for(servo_num=0;servo_num<2;servo_num++){ > if(servo[servo_num] > t100ustimer){ > SERVO_PORT1 = SERVO_PORT1|(0x01<<servo_num); > }else{ > SERVO_PORT1 = SERVO_PORT1&(~(0x01<<servo_num)); > } > } >} > >//UART0 initialize >// desired baud rate: 115200 >// actual: baud rate:111111 (3.7%) >// 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; >} >/* >#pragma interrupt_handler uart0_rx_isr:19 >void uart0_rx_isr(void) >{ > //uart has received a character in UDR >} > >#pragma interrupt_handler uart0_udre_isr:20 >void uart0_udre_isr(void) >{ > //character transferred to shift register so UDR is now empty >} > >#pragma interrupt_handler uart0_tx_isr:21 >void uart0_tx_isr(void) >{ > //character has been transmitted >} >*/ >//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(); > //timer1_init(); > uart0_init(); > > MCUCR = 0x00; > EICRA = 0x00; //extended ext ints > EICRB = 0x00; //extended ext ints > EIMSK = 0x00; > TIMSK = 0x01; //timer interrupt sources > ETIMSK = 0x00; //extended timer interrupt sources > SEI(); //re-enable interrupts > //all peripherals are now initialized >} > >void delay(int delaytime){ > int i,j; > for(i=0;i<100;i++){ > for(j=0;j<delaytime;j++){ > } > } >} > >// >void main(void) >{ > int i; >unsigned char ch; > init_devices(); > for(i=0;i<MAX_SERVO;i++){ > servo[i]=0; > } > servo[0] = 79; > servo[1] = 111; > //insert your functional code here... > printf("\\r\\n\\r\\n Testing Servo Motor Ver1.0\\r\\n"); > > while(1){ > scanf("%c", &ch); > printf("Value:%d / ",servo[0]); > printf("Value:%d\\r\\n",servo[1]); > if((ch == 'a') || (ch == 'A')){ > servo[0]--; > } > if((ch == 'q') || (ch == 'Q')){ > servo[0]++; > } > if((ch == 's') || (ch == 'S')){ > servo[1]--; > } > if((ch == 'w') || (ch == 'W')){ > servo[1]++; > } > if(ch == '3'){ > servo[0] = 66; > } > if(ch == '2'){ > servo[0] = 79; > } > if(ch == '1'){ > servo[0] = 109; > } > if(ch == '6'){ > servo[1] = 80; > } > if(ch == '5'){ > servo[1] = 111; > } > if(ch == '4'){ > servo[1] = 122; > } > if(servo[0] <=67) servo[0] = 67; > if(servo[0] >=130) servo[0] = 130; > if(servo[1] <=79) servo[1] = 79; > if(servo[1] >=123) servo[1] = 123; >} >} > >desired value 가 지금 20uSec로 되있는데 실제 oscilloscope 로 pulse 를 보면 최소벼화는 14us 로 나옵니다. 그러나 저의들은 모터에 들어오는 pusle가 10us 로 변화 할때도 모터 구동가는 해야하는데 , Timer 부분을 지금 공부 하고 있지만 ,그래도 어떻게 수정해야 하는지 잘 몰라서 이렇게 글을 남깁니다. 꼭 해야하는 일이라서 부탁 드립니다. 감사합니다. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
5486 답변완료AVR용 USB-ISP v3 박찬진 2010-07-16 1,376
AVR용 USB-ISP v3의 uart으로 컴퓨터와 통신을 할 수 있다고 듣었습니다 그래서 통신 쪽 소스을 여러개 구해서 작동 시켜봐지만 제대로 작동하지 않았습니다 그래서 문제점을 생각해봤습니다 AVR용 USB-ISP 4p에서 vcc은 5v 으로 연결했고 rx-tx tx-rx gnd-gnd으로 연결했습니다 vcc에 5v 연결하는 것이 맞습니까? 컴퓨터 속성으로 들어가서 알아보는 것 있지 않습니까? AVR용 USB-ISP을 USB에 연결하면 포트에서 연결되었다고 뜹니다 그런데 위에 회로도처럼 연결하면 갑자기 사라집니다 USB인식 실패라는 글이 뜹니다 통신을 제외한 아트메가128에 프로그램에 넣는 것은 잘 들어갑니다 담당자님 문제점을 알고 계시면 답글 부탁드립나다
관리자 답변 NEWTC · 2010-07-16
안녕하세요 AVR용 USB-ISP v3 는 ISP 다운로드 기능 및 UART 기능도 포함하고 있습니다. 그러나, 동시에 2개는 사용할수가 없습니다. UART 기능을 사용하시려면 6핀 케이블 연결하지 않아야 하면 PC의 다운로드툴은 UART의com 포트 동일하기 &#46468;문에 다운로드툴은 연결하지 않거나, COM 를 변경하셔야합니다. ISP기능 무리없이 정상동작을 하다면 UART당연히 동작해야합니다. 사용상에 문제 인것같아 보입니다. 4핀을 연결하면 장치관리자의 COM가 없어지다는 말을 하셨는데 연결할 선을 잘못 연결하여 쇼트가 되거나,하면 USB 인식실패가 될수 있습니다. 연결하는 방법은 맞습니다. USB-ISP 만으로 UART기능을 테스트를 하시려면 4핀컨넥에서 2.3번째(RX,TX) 쇼트시킨 후 터미널창을 연결하여 키보드의 자판을 입력 하면 입력한 글짜 가 나오면 정상적으로 동작하는것입니다. 수고하세요 >AVR용 USB-ISP v3의 uart으로 컴퓨터와 통신을 할 수 있다고 듣었습니다 > >그래서 통신 쪽 소스을 여러개 구해서 작동 시켜봐지만 제대로 작동하지 않았습니다 > >그래서 문제점을 생각해봤습니다 > >AVR용 USB-ISP 4p에서 vcc은 5v 으로 연결했고 rx-tx tx-rx gnd-gnd으로 연결했습니다 > >vcc에 5v 연결하는 것이 맞습니까? > >컴퓨터 속성으로 들어가서 알아보는 것 있지 않습니까? > >AVR용 USB-ISP을 USB에 연결하면 포트에서 연결되었다고 뜹니다 > >그런데 위에 회로도처럼 연결하면 갑자기 사라집니다 > >USB인식 실패라는 글이 뜹니다 > >통신을 제외한 아트메가128에 프로그램에 넣는 것은 잘 들어갑니다 > >담당자님 문제점을 알고 계시면 답글 부탁드립나다
5485 답변완료IAR EWARM 5.3 kick start 버젼 다운 받을수 있는지요? 하동호 2010-07-15 1,381
NEWTC 제품 이용자 입니다. 이 질문은 NEWTC제품과 직접 적인 관게는 없습니다만, 얼마전에 EWARM5.2 kick start 버전을 newtc홈페이지에서 다운 받았습니다. 친절 하게도 license키도 잘 발급해 주셨구요. 그래서 혹시 5.3 kick start 버전도 다운 받을 루트가 있을가요? 번거로우 시더라도 답변 좀 부탁드려요. 있으시면 라이센스 키 발급도 부탁드립니다. 감사합니다.
관리자 답변 NEWTC · 2010-07-15
안녕하세요? 고객님, 현재는 본사에서는 KickStart edition으로 5.2 버전만 배포하고 있습니다. 최신 버전은 아래 링크에서 받으셔야 합니다. 최신버젼 다운로드 링크 : http://supp.iar.com/Download/SW/?item=EWARM-KS32 감사합니다. >NEWTC 제품 이용자 입니다. >이 질문은 NEWTC제품과 직접 적인 관게는 없습니다만, >얼마전에 EWARM5.2 kick start 버전을 newtc홈페이지에서 다운 받았습니다. >친절 하게도 license키도 잘 발급해 주셨구요. > >그래서 혹시 5.3 kick start 버전도 다운 받을 루트가 있을가요? >번거로우 시더라도 답변 좀 부탁드려요. >있으시면 라이센스 키 발급도 부탁드립니다. >감사합니다.
5484 답변완료반복문 이용해서 LED8개짜리 구동 하려는데요 kt-m128이요 강완석 2010-07-15 1,393
#include <mega128.h> #include <delay.h> #include <ktm128.h> Byte SetBit(unsigned char REG, unsigned char Bit) { return (REG|Bit); } Byte ClrBit(unsigned char REG, unsigned char Bit) { return (REG&=~Bit); } void runDotMatrix(void) { Byte LED; int i; EX_LED = 0xfe; for(i=0;i<8;i++) { delay_ms(500); LED=(EX_LED<<1)|0x01; } } void main(void) { PORTA=0x00; DDRA=0xFF; PORTB=0x00; DDRB=0xFF; PORTC=0x00; DDRC=0xFF; PORTD=0x00; DDRD=0xFF; PORTE=0x00; DDRE=0xFF; PORTF=0x00; DDRF=0xFF; PORTG=0x00; DDRG=0x1F; ASSR=0x00; TCCR0=0x00; TCNT0=0x00; OCR0=0x00; TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; OCR1CH=0x00; OCR1CL=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; TCCR3A=0x00; TCCR3B=0x00; TCNT3H=0x00; TCNT3L=0x00; ICR3H=0x00; ICR3L=0x00; OCR3AH=0x00; OCR3AL=0x00; OCR3BH=0x00; OCR3BL=0x00; OCR3CH=0x00; OCR3CL=0x00; EICRA=0x00; EICRB=0x00; EIMSK=0x00; TIMSK=0x00; ETIMSK=0x00; SFIOR=0x00; MCUCR=0x80; XMCRA=0x00; while (1) { runDotMatrix(); delay_ms(500); } } 코딩은 이렇게 했구요 runDotMatrix로 되있는건 그냥 그거 하다가 다시 LED구동 할려고 해서 바꾸기 귀찮아서 그렇게 놔둔거에요.많은 시행착오로 컴파일 오류는 안나는데요 왜 안되는 것인지 잘 모르겠어요.
관리자 답변 NEWTC · 2010-07-15
안녕하세요? 고객님, 그리고, LED 관련된 소스를 참고하여 하시는 것이 좋겠습니다. KT-M128은 회로적으로 출력은 가능하지만, EX_LED와 같은 주소에서 값을 읽어 드리는 것은 불가능합니다. 따라서, LED=(EX_LED<<1)|0x01; 이와 같이 EX_LED에서 값을 읽어서, 그 값을 사용하는 것은 불가능하죠. EX_LED로 출력하는 것만 가능합니다. 따라서, EX_LED에 집어 넣는 값과 똑같은 것으로 변수를 하나 만들어서, 거기도 변하게 만들면서, 그 값을 읽어서 하시는 것이 좋겠습니다. 수고하세요. >#include <mega128.h> >#include <delay.h> >#include <ktm128.h> >Byte SetBit(unsigned char REG, unsigned char Bit) >{ > return (REG|Bit); > } > >Byte ClrBit(unsigned char REG, unsigned char Bit) >{ > return (REG&=~Bit); > } >void runDotMatrix(void) >{ >Byte LED; >int i; >EX_LED = 0xfe; >for(i=0;i<8;i++) >{ > delay_ms(500); > LED=(EX_LED<<1)|0x01; > } > } >void main(void) >{ > >PORTA=0x00; >DDRA=0xFF; > >PORTB=0x00; >DDRB=0xFF; > >PORTC=0x00; >DDRC=0xFF; > >PORTD=0x00; >DDRD=0xFF; > >PORTE=0x00; >DDRE=0xFF; >PORTF=0x00; >DDRF=0xFF; > >PORTG=0x00; >DDRG=0x1F; > >ASSR=0x00; >TCCR0=0x00; >TCNT0=0x00; >OCR0=0x00; > >TCCR1A=0x00; >TCCR1B=0x00; >TCNT1H=0x00; >TCNT1L=0x00; >ICR1H=0x00; >ICR1L=0x00; >OCR1AH=0x00; >OCR1AL=0x00; >OCR1BH=0x00; >OCR1BL=0x00; >OCR1CH=0x00; >OCR1CL=0x00; > >TCCR2=0x00; >TCNT2=0x00; >OCR2=0x00; > >TCCR3A=0x00; >TCCR3B=0x00; >TCNT3H=0x00; >TCNT3L=0x00; >ICR3H=0x00; >ICR3L=0x00; >OCR3AH=0x00; >OCR3AL=0x00; >OCR3BH=0x00; >OCR3BL=0x00; >OCR3CH=0x00; >OCR3CL=0x00; > >EICRA=0x00; >EICRB=0x00; >EIMSK=0x00; > >TIMSK=0x00; >ETIMSK=0x00; > >SFIOR=0x00; >MCUCR=0x80; >XMCRA=0x00; >while (1) > { > runDotMatrix(); > delay_ms(500); > > } >} >코딩은 이렇게 했구요 runDotMatrix로 되있는건 그냥 그거 하다가 다시 LED구동 할려고 해서 >바꾸기 귀찮아서 그렇게 놔둔거에요.많은 시행착오로 컴파일 오류는 안나는데요 왜 안되는 것인지 잘 모르겠어요. >