로그인 | 회원가입 | 주문 조회
총 10,748개의 질문이 있습니다.
번호 제목 작성자 등록일 조회
3998 답변완료간만에 다시질문좀 할께요.. 박제두 2009-11-06 1,456
지금 저희가 GPS파싱이후에..-ㅅ-...아무것도 못나가고있습니다.. 지난번에 한백전자에서 파는 임베디드보드와 저희의 KD-128Pro 와 통신을 하려고하는데.. 음..이게 참..rs232 단자와 연결을 해서 하이퍼터미널을 열면 한자또는 물음표가 들어오드라구요..이건뭐 글자가 깨질수도있다고 생각을했는데요.. 원래 보드끼리의 통신을 하려면 UART를 이용해서 해야하지 않나요??? 전압레벨의 차이가 생겨서 통신이 안된다고 말씀해주셔서 그런걸로 알고있었거든요.ㅎㅎ 그리고 한가지더 질문을 하자면 외부전원을 인가하려면 아답터를 꼿는 검은거옆에 input단자로 건전지를 연결해서 넣으면 되는건가요?? 건전지를 넣을경우는 몇 V을 인가해야하나요? 15V를 인가하면 터진다는 소리가 있어서..5V를 넣어야하나요?
관리자 답변 N.T.C · 2009-11-06
안녕하세요 보드 끼리 연결은 uart도가능하지만 spi, iic, 등 아무런상관이 없습니다. 건전지 인가전압은 6.5볼트이상만 넣어주시면 됩니다. 감사합니다 >지금 저희가 GPS파싱이후에..-ㅅ-...아무것도 못나가고있습니다.. > >지난번에 한백전자에서 파는 임베디드보드와 저희의 KD-128Pro 와 통신을 하려고하는데.. > >음..이게 참..rs232 단자와 연결을 해서 하이퍼터미널을 열면 > >한자또는 물음표가 들어오드라구요..이건뭐 글자가 깨질수도있다고 생각을했는데요.. > >원래 보드끼리의 통신을 하려면 UART를 이용해서 해야하지 않나요??? > >전압레벨의 차이가 생겨서 통신이 안된다고 말씀해주셔서 그런걸로 알고있었거든요.ㅎㅎ > >그리고 한가지더 질문을 하자면 외부전원을 인가하려면 아답터를 꼿는 검은거옆에 input단자로 > >건전지를 연결해서 넣으면 되는건가요?? 건전지를 넣을경우는 몇 V을 인가해야하나요? > >15V를 인가하면 터진다는 소리가 있어서..5V를 넣어야하나요? >
3997 답변완료죄송합니다. 다시 USB ISPV03에 대한 궁금점입니다. 임체규 2009-11-06 1,377
1. USB ISPv03에 max232 가 달려있어 컴퓨터와 하이퍼터미널로 바로 연결할수 있습니까? 2. 보드 UART0에 4핀케이블로 USB에 연결하고 컴퓨터와 접속시 USB의 빨간 불만 깜빡입니다. 문제가 있는것입니까? 3. 다른 사람이 max232를 연결해서 같은 소스에 대해 통신이 성공하였다는데.... 현재 사용중인 제품은 모두 뉴티씨 M128PRO-A개발 보드와 USBISP V03 입니다. 현재 전원연결은 보드에 DC를 연결하고 USB의 1번 2번 전부 초기상태 입니다. 바쁘신데 정말 죄송합니다.
관리자 답변 N.T.C · 2009-11-06
안녕하세요 1. USB ISPv03 에는 max232라는것이없습니다. usb로 연결 돼는 제품에는 max232 이들어가질않습니다. 하이퍼 터미널 연결이 가능합니다. 2. USB ISPv03 를 다운로더용도로 사용안하시고, 통신용도로 사용하는것을 질문하시는것 같습니다. 빨간불과는 상관이 없습니다. 빨간 및 녹색 불은 다운로도 용도로 사용할떄만 상태창입니다. 3. 요점을 모릅겠습니다. USB ISPv03 는 다운로더입니다. 통신용으로 사용하실떄는 다운로더 프로그램을 닫고 하셨야합니다. 통일한 통신포트를 사용하기 떄문입니다. 감사합니다. >1. USB ISPv03에 max232 가 달려있어 컴퓨터와 하이퍼터미널로 바로 연결할수 있습니까? > >2. 보드 UART0에 4핀케이블로 USB에 연결하고 컴퓨터와 접속시 USB의 빨간 불만 깜빡입니다. 문제가 있는것입니까? > >3. 다른 사람이 max232를 연결해서 같은 소스에 대해 통신이 성공하였다는데.... > >현재 사용중인 제품은 모두 뉴티씨 M128PRO-A개발 보드와 USBISP V03 입니다. >현재 전원연결은 보드에 DC를 연결하고 USB의 1번 2번 전부 초기상태 입니다. > >바쁘신데 정말 죄송합니다.
3996 답변완료atmega128 오작동 문의드려요. 허지회 2009-11-06 1,390
며칠전까지는 잘 작동하던 atmega128 기판이 갑자기 정상적으로 작동하지 않습니다. 2개의 atmega128기판을 사용하고 있는데, 1개는 6개월전에 1개는 2주전에 구입했습니다. 기계를 심하게 다룬적이 없고, 떨어뜨린 적이 없고, 다운로드도 100번이 채 안되게 이용했을 정도로 많이 사용하지도 않았습니다. 증상은 Atmega장치에 ICCAVR을 통해서 다운로드는 완료되었다고 표시되는데, 세그먼트에 카운트를 표시하는 소스를 넣어도 아무런 변화가 없고, 전에 정상 작동하던 초음파 소스를 넣고 테스트해도 초음파에 아예 불도 들어오지 않습니다. 유감스럽게도 다음주에 atmega128,을 이용해서 보고서를 내고 발표를 해야 되는지라 시간이 많질 안습니다. 첫째로 atmega128 기판을 모든 설정을 초기화 할수 있는 방법이 있는지요? 둘째로 atmega128 기판이 뭔가 이상이 있는지 확인하는 다른 방법이 있는지요?? 셋째로, atmgea128기판이 이상이 맞아서 a/s를 접수하게 되면 어느정도의 기간이 걸리게 되는지 알고 싶습니다. 빠른 답변 부탁드립니다.
관리자 답변 N.T.C · 2009-11-06
안녕하세요 질문요령에 대하여 한번 정독 후 질문을 하여 주시길 바랍니다. 수리는 저희가 물품 수령수 보통 그다음날 수리하여 발송합니다. 수리가 들어가면 연락을 합니다. 감사합니다. >며칠전까지는 잘 작동하던 atmega128 기판이 갑자기 정상적으로 작동하지 않습니다. > >2개의 atmega128기판을 사용하고 있는데, 1개는 6개월전에 1개는 2주전에 구입했습니다. > >기계를 심하게 다룬적이 없고, 떨어뜨린 적이 없고, 다운로드도 100번이 채 안되게 > >이용했을 정도로 많이 사용하지도 않았습니다. 증상은 Atmega장치에 ICCAVR을 통해서 > >다운로드는 완료되었다고 표시되는데, 세그먼트에 카운트를 표시하는 소스를 넣어도 > >아무런 변화가 없고, 전에 정상 작동하던 초음파 소스를 넣고 테스트해도 초음파에 > >아예 불도 들어오지 않습니다. 유감스럽게도 다음주에 atmega128,을 이용해서 > >보고서를 내고 발표를 해야 되는지라 시간이 많질 안습니다. > >첫째로 atmega128 기판을 모든 설정을 초기화 할수 있는 방법이 있는지요? > >둘째로 atmega128 기판이 뭔가 이상이 있는지 확인하는 다른 방법이 있는지요?? > >셋째로, atmgea128기판이 이상이 맞아서 a/s를 접수하게 되면 어느정도의 기간이 > >걸리게 되는지 알고 싶습니다. > >빠른 답변 부탁드립니다.
3995 답변완료KT-M128 테스트 중에 기존 설치된 프로그램이 지워졌습니다. raindrop 2009-11-06 1,396
KT-M128 테스트 중에 기존 설치된 프로그램이 지워졌습니다. CD를 보니까 demo 프로젝트 파일이 기존 프로그램인듯 한데 코드비젼에서는 컴파일 에러가 납니다. 코드비젼에서 컴파일 하여 복구할 수 있는 방법이 있는지요?
관리자 답변 N.T.C · 2009-11-06
안녕하세요 정확한 질문내용을 이해 못하겠습니다. 데모에 있는 프로젝트를 열어을 경우 라이브러리및 샘플코드의 위치 즉 경로 설정이 고객님의 하고 틀립니다, 경로를 맞쳐 주시던지 아니면 프로젝트 생로 생성 하여 코드만 추가하여 빌드 할수있습니다. 감사합니다. >KT-M128 테스트 중에 기존 설치된 프로그램이 지워졌습니다. > >CD를 보니까 demo 프로젝트 파일이 기존 프로그램인듯 한데 > >코드비젼에서는 컴파일 에러가 납니다. > >코드비젼에서 컴파일 하여 복구할 수 있는 방법이 있는지요?
3994 답변완료uart 질문 2입니다. uart=통신? 송희용 2009-11-06 1,343
제가 쓰는것은 ab-M128-B 입니다. 이 보드에는 uart용 핀이 4핀짜리가 '0' '1'채널이 있습니다. 이것으로 통신을 한다는데 컴퓨터와 통신으로 알고 있습니다. 가령 제가 하고있는 프로젝트 주제로 예를 들면 센서가 어떤 사물을 감지하면 그것에 상응하는 어떤 문자나 문구를 컴퓨터 화면으로 띄우든지 avr 보드에 연결되있는 캐릭터 LCD에 컴퓨터에 입력한 문자를 띄우던지 하는 것이 가능하다고 알고 있습니다. 1.그런데 인터넷 검색과 간단히 공부해본 결과 UART = RS-232 이라는 결론이 나왔습니다. 제가 생각한게 맞나요? 2.어느정도 맞다면 RS-232은 무선통신인데 제가 사용하고있는 AB-M128-B에는 무선 RS-232칩이 없으니 usb-L를 컴퓨터에 꽂아야만 유선으로 밖에 통신을 할수 없는지 궁금합니다. 3.그리고 uart=RS232 인데 제 메인보드엔 uart핀은 있는데 RS-232은 없다 이건 도대체 어떻게 이해해야 하는지 궁금합니다. 제 보드로는 유선이든 무선이든 컴퓨터와는 데이터 처리를 할수 없는것인가요?
관리자 답변 N.T.C · 2009-11-06
안녕하세요 1. rs232는 보통 컴퓨터의 통신포트를 이야기 하는것입니다. uart 는 마이컴쪽에 통신포트중 하나입니다. 통신방법은 같고 차이점은 통신 레벨(전압차)이 다른다는점입니다. 그리고 rs232 무선 통신이라는 말은 첨들어 봅니다. 감사합니다. >제가 쓰는것은 ab-M128-B 입니다. > >이 보드에는 uart용 핀이 4핀짜리가 '0' '1'채널이 있습니다. > >이것으로 통신을 한다는데 컴퓨터와 통신으로 알고 있습니다. > >가령 제가 하고있는 프로젝트 주제로 예를 들면 센서가 어떤 사물을 감지하면 그것에 상응하는 어떤 문자나 문구를 컴퓨터 화면으로 띄우든지 avr 보드에 연결되있는 캐릭터 LCD에 컴퓨터에 입력한 문자를 띄우던지 하는 것이 가능하다고 알고 있습니다. > >1.그런데 인터넷 검색과 간단히 공부해본 결과 UART = RS-232 이라는 결론이 나왔습니다. >제가 생각한게 맞나요? > >2.어느정도 맞다면 RS-232은 무선통신인데 >제가 사용하고있는 AB-M128-B에는 무선 RS-232칩이 없으니 usb-L를 컴퓨터에 꽂아야만 유선으로 밖에 통신을 할수 없는지 궁금합니다. > >3.그리고 uart=RS232 인데 제 메인보드엔 uart핀은 있는데 RS-232은 없다 이건 도대체 어떻게 이해해야 하는지 궁금합니다. 제 보드로는 유선이든 무선이든 컴퓨터와는 데이터 처리를 할수 없는것인가요?
3993 답변완료uart의 연결과 정의가 헷갈림니다. 송희용 2009-11-06 1,322
뉴티씨사의 AB-M128-B모듈을 사용하여 프로젝트의 진행중에 있습니다. 이제 어느덧 센서에서 인체의 움직임이 감지되었을때 LCD에 상태를 표시하고 키패드의 비밀번호로 설정한 키를 맞게 누르면 센서의 작동이 멈추는 실내보안 시스템의 코딩을 모두 완성 하였습니다. 그런데 교수님께서 중간발표를 들으시고 더 나아가서 컴퓨터(PC)와의 데이터를 주고받는 것까지 해보라는 말씀을 들었습니다. 완전 초보인 저희는 이게 대체 먼말씀이신가 싶다가 혹시 uart라는 것을 활용해 현상태를 컴퓨터로 출력 혹은 입력 시키라는 말로 이해 되었습니다. 일단 유아트 핀을 봤더니 4개 핀으로 다행이 저희가 산 귀사의 usb라이트에 uart용 출력 핀이 함께 있는걸 확인했습니다. (역시 최고의 회사;;) 저희의 상황은 여기 까지고 이제 부터 질문 올리겠습니다. 1. 헷갈리는게 컴퓨터와의 데이터를 avr이 주고 받으려면 단순히 usb라이트의 uart용 핀과 avr 메인 기판의 uart0 혹은 1에 꼽고 usb는 컴퓨터와 연결해서 이용하면 되는건지 궁금합니다. 2.만약 맞다면 uart기술을 도전하기 위해 저희가 추가적으로 준비해야될게 usb-L과 avr uart핀을 연결할 4개핀용 커넥터만 있으면 되는지 역시 궁금합니다. 3. 그리고 본 홈페이지 제품 소개에 궁금한 문구가 있어 그림도 첨부했습니다 이쯤에서 그림을 확인해 주시면 "AB-M128-B와 연결하여 통신하는 사진" 이라는 사진설명 문구가있습니다. 이게 컴퓨터 PC와 유선통신을 의미하는 문구인지 무선통신을 의미하는 문구인지 궁금합니다.
관리자 답변 N.T.C · 2009-11-06
안녕하세요 1. 가능합니다. 2. 그렇습니다. 3. 전부 선으로 구성 돼어 있어 유선 통신이죠; 감사합니다. >뉴티씨사의 AB-M128-B모듈을 사용하여 프로젝트의 진행중에 있습니다. > >이제 어느덧 센서에서 인체의 움직임이 감지되었을때 LCD에 상태를 표시하고 키패드의 비밀번호로 설정한 키를 맞게 누르면 센서의 작동이 멈추는 실내보안 시스템의 코딩을 모두 완성 하였습니다. > >그런데 교수님께서 중간발표를 들으시고 더 나아가서 컴퓨터(PC)와의 데이터를 주고받는 것까지 해보라는 말씀을 들었습니다. > >완전 초보인 저희는 이게 대체 먼말씀이신가 싶다가 혹시 uart라는 것을 활용해 현상태를 컴퓨터로 출력 혹은 입력 시키라는 말로 이해 되었습니다. > >일단 유아트 핀을 봤더니 4개 핀으로 다행이 저희가 산 귀사의 usb라이트에 uart용 출력 핀이 함께 있는걸 확인했습니다. (역시 최고의 회사;;) > >저희의 상황은 여기 까지고 이제 부터 질문 올리겠습니다. > >1. 헷갈리는게 컴퓨터와의 데이터를 avr이 주고 받으려면 단순히 usb라이트의 uart용 핀과 avr 메인 기판의 uart0 혹은 1에 꼽고 usb는 컴퓨터와 연결해서 이용하면 되는건지 궁금합니다. > >2.만약 맞다면 uart기술을 도전하기 위해 저희가 추가적으로 준비해야될게 usb-L과 avr uart핀을 연결할 4개핀용 커넥터만 있으면 되는지 역시 궁금합니다. > >3. 그리고 본 홈페이지 제품 소개에 궁금한 문구가 있어 그림도 첨부했습니다 이쯤에서 그림을 확인해 주시면 > "AB-M128-B와 연결하여 통신하는 사진" 이라는 사진설명 문구가있습니다. >이게 컴퓨터 PC와 유선통신을 의미하는 문구인지 무선통신을 의미하는 문구인지 궁금합니다. > > > >
3992 답변완료USB ISP V03 에 UART사용법 문의 임체규 2009-11-06 1,356
안녕하세요 이번에 ATmega128 작업을 하게 된 초보자 입니다. 다름이 아니라 M128PRO-A개발 보드와 USBISP V03을 같이 사용하고 있는데, 6핀을 이용해서 코드비전을 통해 아트메가에 데이터를 넣을때는 USBISP V03에서 노란불인지 녹색불인지 깜빡깜빡 거리면서 잘 되는 것으로 보입니다. 코딩을 넣은 것을 확인하려고 UART0에 USBISP V03을 4핀으로 교체하고 사용하면 빨간불만 깜빡 깜빡 켜집니다. 데이터 시트를 보면 연결이 안되어있거나 타겟의 전원이 꺼져있다고 하는데 USB에서 들어간 전원으로 보드에 POWER에는 불이 들어옵니다. 책을 통해서 얻은 다음과 같은 소스를 사용했습니다. #include <mega128.h> #include <delay.h> #include <string.h> #include <stdio.h> void Putch(char); void main(void) { //전송문자열 char string[]="this is USART0 control program"; char *pStr; // USART 초기화 DDRE = 0xFE; UCSR0A = 0x0; UCSR0B = 0b00001000l; //인터럽드 다 0, 송신 가능 1 UCSR0C = 0b000000110; //비동기 데이터 8 UBRR0H = 0; UBRR0L = 103; //fosc 16mhz, 9600bps pStr = string; while(*pStr) Putch(*pStr++); while(1); } void Putch(char data) { while(!(UCSR0A & 0x20)); UDR0 = data; } 컴파일시 에러는 없었습니다. 아 그리고 포트설정을 2번으로 하여서 다운로드 시에 2번활용후 하이퍼 터미널 사용시 다운로드 포트를 옮기고 하이퍼터미널 설정을 2번으로 해서 작업을 수행했습니다. 사용법에 문제가 발생했는지, 아니면 장비에 문제가 있는지 알고 싶습니다. 감사합니다.
관리자 답변 N.T.C · 2009-11-06
안녕하세요 먼저 질문요령에 대해 한번 읽어보신후 다신 질문 해주시길 바랍니다. 감사합니다. >안녕하세요 이번에 ATmega128 작업을 하게 된 초보자 입니다. > >다름이 아니라 M128PRO-A개발 보드와 USBISP V03을 같이 사용하고 있는데, 6핀을 이용해서 >코드비전을 통해 아트메가에 데이터를 넣을때는 USBISP V03에서 노란불인지 녹색불인지 깜빡깜빡 거리면서 잘 되는 것으로 보입니다. > 코딩을 넣은 것을 확인하려고 UART0에 USBISP V03을 4핀으로 교체하고 사용하면 빨간불만 깜빡 >깜빡 켜집니다. 데이터 시트를 보면 연결이 안되어있거나 타겟의 전원이 꺼져있다고 하는데 USB에서 들어간 전원으로 보드에 POWER에는 불이 들어옵니다. > > >책을 통해서 얻은 다음과 같은 소스를 사용했습니다. >#include <mega128.h> >#include <delay.h> >#include <string.h> >#include <stdio.h> >void Putch(char); > >void main(void) >{ > //전송문자열 > char string[]="this is USART0 control program"; > char *pStr; > > // USART 초기화 > DDRE = 0xFE; > UCSR0A = 0x0; > UCSR0B = 0b00001000l; //인터럽드 다 0, 송신 가능 1 > UCSR0C = 0b000000110; //비동기 데이터 8 > UBRR0H = 0; > UBRR0L = 103; //fosc 16mhz, 9600bps > > pStr = string; > while(*pStr) Putch(*pStr++); > > while(1); >} > >void Putch(char data) >{ > while(!(UCSR0A & 0x20)); > UDR0 = data; >} > >컴파일시 에러는 없었습니다. 아 그리고 포트설정을 2번으로 하여서 다운로드 시에 2번활용후 하이퍼 터미널 사용시 다운로드 포트를 옮기고 하이퍼터미널 설정을 2번으로 해서 작업을 수행했습니다. > >사용법에 문제가 발생했는지, 아니면 장비에 문제가 있는지 알고 싶습니다. >감사합니다.
3991 답변완료예제파일을 분석중인데 모르는 부분이있어서요. 김현준 2009-11-06 1,393
뉴티씨에서 128개발보드를 사서 서브모터 제어를 하는데 servo_num = servo_num % MAX_SERVO_COUNT; ex_servo_motor.c파일에서 이부분인데 MAX_SERVO_COUNT 이건 8로 정의되는데 servo_num은 int로 지정되어있구 0이란 소리는없는데 그냥 0으로 부터 시작되는건가요? 그리고 %라는게 무슨의미인지 모르겠네요 ㅠㅠ... 그때 직접찾아뵙는다고했는데.. 그래도 기본적인거 더 연구하고 가야 큰 도움이될거같아서요 ㅠㅠ
관리자 답변 N.T.C · 2009-11-06
안녕하세요 %? 뭘 뜻한는것냐 하면 보통 소수점 아래값을 볼때 사용합니다. 예로 if ( i % 2 ) printf ( "홀수=%d",i ) else printf ( "짝수=%d",i ) 이런씩으로 사용 하는용도 입니다. 감사합니다. >뉴티씨에서 128개발보드를 사서 서브모터 제어를 하는데 > > servo_num = servo_num % MAX_SERVO_COUNT; > >ex_servo_motor.c파일에서 이부분인데 > > MAX_SERVO_COUNT 이건 8로 정의되는데 servo_num은 int로 지정되어있구 > >0이란 소리는없는데 그냥 0으로 부터 시작되는건가요? > >그리고 %라는게 무슨의미인지 모르겠네요 ㅠㅠ... > >그때 직접찾아뵙는다고했는데.. 그래도 기본적인거 더 연구하고 가야 큰 도움이될거같아서요 > >ㅠㅠ
3990 답변완료인터럽트 시그널에 대해... 손선호 2009-11-06 1,422
안녕하세요~ 이렇게 또 여쭙는 글을 쓰네요..ㅠ 다름이 아니라 제가 AT90USB162라는 칩을 써서 프로그램을 짜고 있는데용 ㅠㅠ 귀사 제품이 아니라도 비빌곳이 여기뿐인지라..ㅠㅠ 컴파일러는 avr-GCC사용하구요..ㅠ 보통ATmega128에서는 UART rx isr을 정의할때 SIGNAL(SIG_UART0_RECV){ } 이렇게 하잖아요?!ㅜㅜ 근데 at90usb162에서 저대로 해봤더니 ../main.c:110: warning: 'SIG_UART0_RECV' appears to be a misspelled signal handler 이렇게 뜨네요 ㅠ 어떻게 써야 할지 몰라서 답답한 마음에 한번 여쭈어 봅니다 ㅠ
관리자 답변 N.T.C · 2009-11-06
안녕하세요 저희는 gcc 컴파일러를 지원안합니다. 아는 정도만 말씀드리면 에러가 인터럽터 핸들러 벡터가 틀리것 같습니다. 'SIG_UART0_RECV' 저 명칭이 아니것같습니다. AT90USB162 헤더 파일이나 인터럽터 헤더 파일 안에 핸드러 백터에 관련된 문장? 즉 디파인된 문구가 있습니다. 그것로 바꾸셔야합니다. 감사합니다. >안녕하세요~ >이렇게 또 여쭙는 글을 쓰네요..ㅠ >다름이 아니라 >제가 AT90USB162라는 칩을 써서 프로그램을 짜고 있는데용 ㅠㅠ >귀사 제품이 아니라도 비빌곳이 여기뿐인지라..ㅠㅠ >컴파일러는 avr-GCC사용하구요..ㅠ > >보통ATmega128에서는 UART rx isr을 정의할때 > >SIGNAL(SIG_UART0_RECV){ > >} > >이렇게 하잖아요?!ㅜㅜ > >근데 at90usb162에서 저대로 해봤더니 > >../main.c:110: warning: 'SIG_UART0_RECV' appears to be a misspelled signal handler > >이렇게 뜨네요 ㅠ > >어떻게 써야 할지 몰라서 답답한 마음에 한번 여쭈어 봅니다 ㅠ >
3989 답변완료AM-PB04-B구매후 동작 관련 질문 김정현 2009-11-06 1,288
1.AM-PB04-B 릴레이보드 컨트롤 신호연결시 두모듈의 GND핀도 상호 연결을 해야하나요? 2.컨트롤 신호를 보낼 모듈은 Chipcon사 cc2420db입니다. 외부 확장 핀은 3.3V 입&#8729;출력 전압 규격입니다. 컨트롤 신호보내면 릴레이보드와 상호연동에 문제 는 없습니까??
관리자 답변 N.T.C · 2009-11-06
안녕하세요 1. 보드와 보드를 연결시 신호선의 기준전위 때문에 gnd를 같이 연결하세야 합니다. 2. 문제는 없어 보입니다. 감사합니다. >1.AM-PB04-B 릴레이보드 컨트롤 신호연결시 두모듈의 GND핀도 상호 연결을 해야하나요? > >2.컨트롤 신호를 보낼 모듈은 Chipcon사 cc2420db입니다. > 외부 확장 핀은 3.3V 입&#8729;출력 전압 규격입니다. 컨트롤 신호보내면 릴레이보드와 상호연동에 > 문제 는 없습니까??
3988 답변완료타이머 질문드립니다!!! 이경섭 2009-11-05 1,416
타이머 설정할때 정해주는 desired value는 어떻게 쓰이는 건가요??? Crystal 이랑은 어떻게 다른거에요???
관리자 답변 N.T.C · 2009-11-06
안녕하세요? 고객님, 원하시는 타이밍을 말하는 것인데, 실제로는 약간 차이가 날 수 있습니다. 그래서, 원하는 타이밍과 실제 타이밍과의 차이가 나게 되면, 컴파일러에서 마법사로 코드 생성시에 그 오차율을 알려 줍니다. 수고하세요. >타이머 설정할때 정해주는 > >desired value는 어떻게 쓰이는 건가요??? > >Crystal 이랑은 어떻게 다른거에요???
3987 답변완료FB755AC 수리 문의드립니다. 김경초 2009-11-05 1,323
귀사의 FB755AC 블루투스 모듈을 사용하고 있습니다. 그런데 모듈 부품들중 노란색 소자 (4754 30424) 아마도 커패시터 같은데요. 그 소자가 떨어졌습니다. 어떻게 수리할 수 있을지 문의드립니다. 수고하십시오.
관리자 답변 N.T.C · 2009-11-06
안녕하세요 저희는 블루투스를 생산 판매하는 제품이 없습니다. 한번 알아보시길 바랍니다. 펌테크 제품이 아닌가 싶네요. 감사힙니다. >귀사의 FB755AC 블루투스 모듈을 사용하고 있습니다. > >그런데 모듈 부품들중 노란색 소자 (4754 30424) 아마도 커패시터 같은데요. > >그 소자가 떨어졌습니다. > >어떻게 수리할 수 있을지 문의드립니다. > >수고하십시오.
3986 답변완료안녕하세요...Atmega128 질문드립니다. 이지원 2009-11-05 1,471
Atmega128을 이용해서 제공해 주신 여러가지 소스를 시도해보고 출력도 얻었습니다. 이제 뭔가 시도해보려고 하는데... 갑자기 잘 되던 atmega128이 작동을 제대로 안하고 이상하게 작동합니다. 떨어뜨린 적도 없고, 특별히 이상징후를 본 적도 없습니다. AVR의 어느 부분을 체크 할 필요가 있을까요? 아님 A/S를 받아야 하나요? 아님 초기화하는 방법이 따로 있나요? 답변 부탁드립니다.
관리자 답변 N.T.C · 2009-11-06
안녕하세요 무조건 이상하다고 그러시면 저희도 잘 모릅니다. 한번 a/s 를 한번 받아 보시길 권장합니다. 감사합니다. >Atmega128을 이용해서 제공해 주신 여러가지 소스를 시도해보고 출력도 얻었습니다. > >이제 뭔가 시도해보려고 하는데... > >갑자기 잘 되던 atmega128이 작동을 제대로 안하고 이상하게 작동합니다. > >떨어뜨린 적도 없고, 특별히 이상징후를 본 적도 없습니다. > >AVR의 어느 부분을 체크 할 필요가 있을까요? > >아님 A/S를 받아야 하나요? > >아님 초기화하는 방법이 따로 있나요? > >답변 부탁드립니다.
3985 답변완료전원연결부 커넥터 모델명 질문있습니다. 장장호 2009-11-05 1,326
오늘 제품 잘 받았습니다. 빠진거 없이 잘 왔습니다. 1) AB-M128PRO-A의 12v 전원입력부 단자의 모델명을 알고 싶습니다.(동그란 단자) 2) 그리고 보드의 각 a~f 포트의 커넥터의 모델명도 알고 싶습니다. 몰렉스 커넥터인것같은데 인터넷에서 쉽게 찾아지질 않네요 혹시 오프라인매장에서 살수 있는지도 알려주실수 있을까요. ^^
관리자 답변 N.T.C · 2009-11-06
안녕하세요? 고객님, 저희 뉴티씨 제품을 이용하여 주셔서 감사합니다. 답변 드릴께요. 1) Adapter Jack DC-005 2파이 입니다. 2) BHS-01-10P 라는 제품이구요. 보통, 10핀 박스헤더 커넥터라고 말하면 오프라인에서 구매 가능합니다. 용산 전자랜드 광장층의 에스와이 전자에서도 구매 가능합니다. http://www.eleparts.co.kr/front/productdetail.php?productcode=004001003000003452&sort= 에 가면 구매하실 수 있습니다. 감사합니다. >오늘 제품 잘 받았습니다. 빠진거 없이 잘 왔습니다. > >1) AB-M128PRO-A의 12v 전원입력부 단자의 모델명을 알고 싶습니다.(동그란 단자) > > >2) 그리고 보드의 각 a~f 포트의 커넥터의 모델명도 알고 싶습니다. > >몰렉스 커넥터인것같은데 인터넷에서 쉽게 찾아지질 않네요 > >혹시 오프라인매장에서 살수 있는지도 알려주실수 있을까요. ^^
3984 답변완료pc로부터 신호를 받아 스텝모터를 돌릴려면 여승언 2009-11-05 1,405
안녕하세요 관리자님 또 질문드리네요^^; 답변을 잘 해주셔서 항상 감사하게 생각합니다. 다름이 아니오라 저희가 스텝모터 를 두개 돌리는데 아래와 같은 소스를 짰습니다. 기본소스는 뉴티시 자료실에 AM-MS2를 이용한 스텝모터 구동을 참고 했고요.. 현재 저희 생각데로 모터가 움직이긴 하는데요 문제는 저희 모터가 수동적으로 도는게 아니고, PC로 부터 신호를 받아 능동적으로 움직여야 하는데요. 그래서 RS-232C를 이용하여 atmega에 uart0 부분과 pc를 연결시키고 신호를 받으면서 스텝모터를 돌리기 위해 노력중인데.. 여기서 계속 막히네요..... 신호를 받아오는 부분이 참.. 어렵군요 ㅜㅜ 어떻게 하면 pc로부터 신호를 받아 모터를 돌릴수 있을까요 아래는 소스입니다. /* 마이크로 스텝드라이버 구동 소스 포트 연결 Enable : PORTC 7번핀 Mode1 : PORTC 5번핀 Mode0 : PORTC 4번핀 RIGHT_DIR : PORTC 3번핀 RIGHT_CLK : PORTC 2번핀 LEFT_DIR : PORTC 1번핀 LEFT_CLK : PORTC 0번핀 */ #include <iom128v.h> //헤더파일 #include <macros.h> #include <stdio.h> //sprintf 를 사용하기 위한 헤더파일 #define MOTOR_PORT PORTC // 스테핑 모터 연결 포트 //포트 C를 이용하여 스텝모터를 구동하기 위한 포트 선언 #define MOTOR_PORT_DDR DDRC // 스테핑 모터 연결 포트의 DDR REG //포트 C를 출력하기 위한 방향설정 #define swich 1 #define MOTOR_ENABLE (MOTOR_PORT = MOTOR_PORT|0x80) #define MOTOR_DISABLE (MOTOR_PORT = MOTOR_PORT&0x7f) #define MOTOR_STEP_M0 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x00) //11(00)1111 LL #define MOTOR_STEP_M1 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x10) //11(01)1111 LH #define MOTOR_STEP_M2 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x20) //11(10)1111 HL #define MOTOR_STEP_M3 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x30) //11(11)1111 HH #define MOTOR_LEFT_CLK (MOTOR_PORT = MOTOR_PORT^0x01) #define MOTOR_RIGHT_CLK (MOTOR_PORT = MOTOR_PORT^0x04) #define MOTOR_LEFT_CW (MOTOR_PORT = MOTOR_PORT&0xfd) //0=시계방향 #define MOTOR_LEFT_CCW (MOTOR_PORT = MOTOR_PORT|0x02) //1=반시계방향 #define MOTOR_RIGHT_CW (MOTOR_PORT = MOTOR_PORT&0xf7) //0=시계방향 #define MOTOR_RIGHT_CCW (MOTOR_PORT = MOTOR_PORT|0x08) //1=반시계방향 //한개의 문자를 수신 한다 unsigned char pstr; /* main-----------------------------------*/ void main(void) { init_devices(); //insert your functional code here... printf(" \\n\\n\\rStepping Motor test program...\\n\\r"); //printf(" \\n\\n\\rStepping Motor test go...\\n\\r"); MOTOR_PORT_DDR = 0xff; //getchar(); //MOTOR_ENABLE; //MOTOR_DISABLE; MOTOR_STEP_M0; //M0로갈수록 정밀하게 제어는 가능하지만모터가한바퀴도는데 필요한클럭은많아진다.? //MOTOR_LEFT_CW; // MOTOR_RIGHT_CW; //cw 정방향(시계방향) ccw 역방향(반시계방향) //getchar(); //PORTA = 0x00; //DDRA = 0xff; // /* 딜레이로 마이크로 스텝 드라이버 구동 */ while(1){ //PORTG++; // PORTA = pstr; // PORTC = pstr; switch(swich) { case 1: MOTOR_ENABLE; MOTOR_LEFT_CW; //MOTOR_LEFT=X축 MOTOR_RIGHT_CW; //MOTOR_RIGHT=Y축 //MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); break; case 2: MOTOR_ENABLE; MOTOR_LEFT_CW; MOTOR_RIGHT_CCW; //MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); break; case 3: MOTOR_ENABLE; MOTOR_LEFT_CW; MOTOR_RIGHT_CW; MOTOR_LEFT_CLK; //MOTOR_RIGHT_CLK; delay(2); break; case 4: MOTOR_ENABLE; MOTOR_LEFT_CCW; MOTOR_RIGHT_CCW; MOTOR_LEFT_CLK; //MOTOR_RIGHT_CLK; delay(2); break; case 5: MOTOR_ENABLE; MOTOR_LEFT_CW; MOTOR_RIGHT_CW; MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); break; case 6: MOTOR_ENABLE; MOTOR_LEFT_CW; MOTOR_RIGHT_CCW; MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); break; case 7: MOTOR_ENABLE; MOTOR_LEFT_CCW; MOTOR_RIGHT_CW; MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); break; case 8: MOTOR_ENABLE; MOTOR_LEFT_CCW; MOTOR_RIGHT_CCW; MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); break; default: MOTOR_DISABLE; break; } /* if(swich==1) { MOTOR_LEFT_CW; //MOTOR_LEFT=X축 MOTOR_RIGHT_CW; //MOTOR_RIGHT=Y축 } if(swich==2) { MOTOR_LEFT_CW; MOTOR_RIGHT_CCW; } if(swich==3) { MOTOR_LEFT_CCW; MOTOR_RIGHT_CW; } if(swich==4) { MOTOR_LEFT_CCW; MOTOR_RIGHT_CCW; } */ /*MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); MOTOR_LEFT_CLK; MOTOR_RIGHT_CLK; delay(2); */ } } void port_init(void) { PORTA = 0x00; DDRA = 0xff; //PORTB = 0x00; //DDRB = 0x00; PORTC = 0x00; DDRC = 0xff; //C포트로 스텝모터구동 //PORTD = 0x00; //DDRD = 0xff; //PORTE = 0x00; //DDRE = 0x00; //PORTF = 0x00; //DDRF = 0x00; //PORTG = 0x00; //DDRG = 0x03; } // 통신을 위한 레지스터 선언 // UART0 초기화 // desired baud rate: 9600 이론값 // actual: baud rate:9615 (0.2%) 실제값 ,baud rate=1초당 전송되는 변조된신호의수 // char size: 8 bit,데이터비트는 8비트임 // parity: Disabled(사용안함) void uart0_init(void) { UCSR0B = 0x00; //송수신 등 모든 서비스를 일단 정지시킴 UCSR0A = 0x00; UCSR0C = 0x06; //0b00000110 비동기데이터8비트모드 UBRR0L = 0x67; //set baud rate lo UBRR0H = 0x00; //set baud rate hi UCSR0B = 0x18; } //call this routine to initialize all peripherals // 전체 장치를 위한 레지스터 설정 부분 void init_devices(void) //init함수는 초기화 { //stop errant(잘못된) interrupts until set up CLI(); //disable all interrupts XDIV = 0x00; //xtal divider,크리스탈 XMCRA = 0x00; //external memory port_init(); //포트에 대한 초기화 선언 //uart0_init(); //시리얼통신에 대한 초기화 선언 MCUCR = 0x00; //외부메모리를쓰지않는다 ,MCUCR=0X80이면 외부메모리를 쓴다 EICRA = 0x00; //extended ext ints EICRB = 0x00; //extended ext ints EIMSK = 0x00; // TIMSK = 0x40; //timer interrupt sources ETIMSK = 0x04; //extended timer interrupt sources SEI(); //re-enable interrupts, Global Interrupt Enable(Set Interrupt)명령 //all peripherals are now initialized } // 모터속도를 위한 딜레이 함수 void delay(int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<600;j++); } } //송수신 프로그램 //printf함수에서 사용할 putchar에 uart0와uart1에 데이터를 보내도록 하였음 int putchar(char c)//printf함수 사용시 추가할것 { while (((UCSR0A>>UDRE0)&0x01) == 0) ; //UDRE, data register empty UDR0 = c; return c; } int getchar(void) //scanf함수 사용시 추가할것 { while ((UCSR0A & 0x80) == 0); return UDR0; }
관리자 답변 N.T.C · 2009-11-06
안녕하세요 코드 수정 해드릴지 않습니다. uart와 모터를 따로 동작시켜야 합니다. 즉 uart수신 인터럽터를 만들어 버퍼에 채우시고 메인루틴에 가끔씩 버퍼를 읽어 매칭시키시면 됩니다. 그러면 모터랑 별개로 통신이 가능합니다. 감사합니다. >안녕하세요 관리자님 또 질문드리네요^^; >답변을 잘 해주셔서 항상 감사하게 생각합니다. 다름이 아니오라 > >저희가 스텝모터 를 두개 돌리는데 아래와 같은 소스를 짰습니다. 기본소스는 뉴티시 자료실에 >AM-MS2를 이용한 스텝모터 구동을 참고 했고요.. 현재 저희 생각데로 모터가 움직이긴 하는데요 >문제는 저희 모터가 수동적으로 도는게 아니고, PC로 부터 신호를 받아 능동적으로 움직여야 하는데요. 그래서 RS-232C를 이용하여 atmega에 uart0 부분과 pc를 연결시키고 신호를 받으면서 스텝모터를 돌리기 위해 노력중인데.. 여기서 계속 막히네요..... >신호를 받아오는 부분이 참.. 어렵군요 ㅜㅜ 어떻게 하면 pc로부터 신호를 받아 모터를 돌릴수 있을까요 > >아래는 소스입니다. > > >/* > 마이크로 스텝드라이버 구동 소스 > 포트 연결 > Enable : PORTC 7번핀 > Mode1 : PORTC 5번핀 > Mode0 : PORTC 4번핀 > RIGHT_DIR : PORTC 3번핀 > RIGHT_CLK : PORTC 2번핀 > LEFT_DIR : PORTC 1번핀 > LEFT_CLK : PORTC 0번핀 >*/ > >#include <iom128v.h> //헤더파일 >#include <macros.h> >#include <stdio.h> //sprintf 를 사용하기 위한 헤더파일 > >#define MOTOR_PORT PORTC // 스테핑 모터 연결 포트 >//포트 C를 이용하여 스텝모터를 구동하기 위한 포트 선언 >#define MOTOR_PORT_DDR DDRC // 스테핑 모터 연결 포트의 DDR REG >//포트 C를 출력하기 위한 방향설정 > >#define swich 1 >#define MOTOR_ENABLE (MOTOR_PORT = MOTOR_PORT|0x80) >#define MOTOR_DISABLE (MOTOR_PORT = MOTOR_PORT&0x7f) >#define MOTOR_STEP_M0 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x00) //11(00)1111 LL >#define MOTOR_STEP_M1 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x10) //11(01)1111 LH >#define MOTOR_STEP_M2 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x20) //11(10)1111 HL >#define MOTOR_STEP_M3 (MOTOR_PORT = (MOTOR_PORT&0xcf)|0x30) //11(11)1111 HH >#define MOTOR_LEFT_CLK (MOTOR_PORT = MOTOR_PORT^0x01) >#define MOTOR_RIGHT_CLK (MOTOR_PORT = MOTOR_PORT^0x04) >#define MOTOR_LEFT_CW (MOTOR_PORT = MOTOR_PORT&0xfd) //0=시계방향 >#define MOTOR_LEFT_CCW (MOTOR_PORT = MOTOR_PORT|0x02) //1=반시계방향 >#define MOTOR_RIGHT_CW (MOTOR_PORT = MOTOR_PORT&0xf7) //0=시계방향 >#define MOTOR_RIGHT_CCW (MOTOR_PORT = MOTOR_PORT|0x08) //1=반시계방향 > >//한개의 문자를 수신 한다 >unsigned char pstr; > > >/* main-----------------------------------*/ >void main(void) >{ > > init_devices(); > //insert your functional code here... > printf(" \\n\\n\\rStepping Motor test program...\\n\\r"); > //printf(" \\n\\n\\rStepping Motor test go...\\n\\r"); > > MOTOR_PORT_DDR = 0xff; > //getchar(); > > //MOTOR_ENABLE; > //MOTOR_DISABLE; > MOTOR_STEP_M0; //M0로갈수록 정밀하게 제어는 가능하지만모터가한바퀴도는데 필요한클럭은많아진다.? > //MOTOR_LEFT_CW; > // MOTOR_RIGHT_CW; >//cw 정방향(시계방향) ccw 역방향(반시계방향) > //getchar(); > //PORTA = 0x00; > //DDRA = 0xff; >// > /* 딜레이로 마이크로 스텝 드라이버 구동 */ > while(1){ > //PORTG++; > > > > // PORTA = pstr; > // PORTC = pstr; > > > > switch(swich) > { > case 1: > MOTOR_ENABLE; > MOTOR_LEFT_CW; //MOTOR_LEFT=X축 > MOTOR_RIGHT_CW; //MOTOR_RIGHT=Y축 > //MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > break; > > case 2: > MOTOR_ENABLE; > MOTOR_LEFT_CW; > MOTOR_RIGHT_CCW; > //MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > break; > > case 3: > MOTOR_ENABLE; > MOTOR_LEFT_CW; > MOTOR_RIGHT_CW; > MOTOR_LEFT_CLK; > //MOTOR_RIGHT_CLK; > delay(2); > break; > > case 4: > MOTOR_ENABLE; > MOTOR_LEFT_CCW; > MOTOR_RIGHT_CCW; > MOTOR_LEFT_CLK; > //MOTOR_RIGHT_CLK; > delay(2); > break; > > case 5: > MOTOR_ENABLE; > MOTOR_LEFT_CW; > MOTOR_RIGHT_CW; > MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > break; > > case 6: > MOTOR_ENABLE; > MOTOR_LEFT_CW; > MOTOR_RIGHT_CCW; > MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > break; > > case 7: > MOTOR_ENABLE; > MOTOR_LEFT_CCW; > MOTOR_RIGHT_CW; > MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > break; > > case 8: > MOTOR_ENABLE; > MOTOR_LEFT_CCW; > MOTOR_RIGHT_CCW; > MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > break; > > > default: > MOTOR_DISABLE; > break; > } > > /* > if(swich==1) > { > MOTOR_LEFT_CW; //MOTOR_LEFT=X축 > MOTOR_RIGHT_CW; //MOTOR_RIGHT=Y축 > } > > if(swich==2) > { > MOTOR_LEFT_CW; > MOTOR_RIGHT_CCW; > } > > if(swich==3) > { > MOTOR_LEFT_CCW; > MOTOR_RIGHT_CW; > } > > if(swich==4) > { > MOTOR_LEFT_CCW; > MOTOR_RIGHT_CCW; > } > */ > > > /*MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > MOTOR_LEFT_CLK; > MOTOR_RIGHT_CLK; > delay(2); > */ > } > >} > >void port_init(void) >{ > PORTA = 0x00; > DDRA = 0xff; > //PORTB = 0x00; > //DDRB = 0x00; > PORTC = 0x00; > DDRC = 0xff; //C포트로 스텝모터구동 > //PORTD = 0x00; > //DDRD = 0xff; > //PORTE = 0x00; > //DDRE = 0x00; > //PORTF = 0x00; > //DDRF = 0x00; > //PORTG = 0x00; > //DDRG = 0x03; >} > >// 통신을 위한 레지스터 선언 >// UART0 초기화 >// desired baud rate: 9600 이론값 >// actual: baud rate:9615 (0.2%) 실제값 ,baud rate=1초당 전송되는 변조된신호의수 >// char size: 8 bit,데이터비트는 8비트임 >// parity: Disabled(사용안함) > >void uart0_init(void) >{ > > UCSR0B = 0x00; //송수신 등 모든 서비스를 일단 정지시킴 > UCSR0A = 0x00; > UCSR0C = 0x06; //0b00000110 비동기데이터8비트모드 > UBRR0L = 0x67; //set baud rate lo > UBRR0H = 0x00; //set baud rate hi > UCSR0B = 0x18; > >} > > >//call this routine to initialize all peripherals >// 전체 장치를 위한 레지스터 설정 부분 >void init_devices(void) //init함수는 초기화 >{ > //stop errant(잘못된) interrupts until set up > CLI(); //disable all interrupts > XDIV = 0x00; //xtal divider,크리스탈 > XMCRA = 0x00; //external memory > > port_init(); //포트에 대한 초기화 선언 > //uart0_init(); //시리얼통신에 대한 초기화 선언 > > MCUCR = 0x00; //외부메모리를쓰지않는다 ,MCUCR=0X80이면 외부메모리를 쓴다 > EICRA = 0x00; //extended ext ints > EICRB = 0x00; //extended ext ints > EIMSK = 0x00; // > TIMSK = 0x40; //timer interrupt sources > ETIMSK = 0x04; //extended timer interrupt sources > SEI(); //re-enable interrupts, Global Interrupt Enable(Set Interrupt)명령 > //all peripherals are now initialized >} > >// 모터속도를 위한 딜레이 함수 > >void delay(int n) >{ > volatile int i,j; > for(i=1;i<n;i++) > { > for(j=1;j<600;j++); > } >} > >//송수신 프로그램 >//printf함수에서 사용할 putchar에 uart0와uart1에 데이터를 보내도록 하였음 > >int putchar(char c)//printf함수 사용시 추가할것 >{ > while (((UCSR0A>>UDRE0)&0x01) == 0) ; //UDRE, data register empty > > UDR0 = c; > return c; >} > >int getchar(void) //scanf함수 사용시 추가할것 >{ > while ((UCSR0A & 0x80) == 0); > return UDR0; >}