Lv. 41 (책임연구원) 17,334 납
34%
Exp. 17,093/17,640 | 34%
회원가입 ID/PW 찾기
AA

#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <string.h>

void init_Serial0(void)
{
  PORTE = PORTE & 0xFC;
  UCSR0A = 0x00; //
  UCSR0B = 0x00;  // Receive enable
  UCSR0C = 0x06; // 비동기 방식, No parity, 1stop bit
  UBRR0L = 0xCF; // 0x33 = 51 --> 19200bps, 0x10 = 16 --> 57600bps
  UBRR0H = 0x00; // 16MHz, 57600 bps ->16(0x10)(UBRR)
  UCSR0B = 0x18;  // Receive/Transmit enable
}

void init_Serial1(void)
{
  PORTE = PORTE & 0xFC;
  UCSR1A = 0x00; //
  UCSR1B = 0x00;  // Receive enable
  UCSR1C = 0x06; // 비동기 방식, No parity, 1stop bit
  UBRR1L = 0xCF; // 0x33 = 51 --> 19200bps, 0x10 = 16 --> 57600bps
  UBRR1H = 0x00; // 16MHz, 57600 bps ->16(0x10)(UBRR)
  UCSR1B = 0x18;  // Receive/Transmit enable
}

 

void putch(char data)
{
 while(!(UCSR0A & 0x20));
 UDR0 = data;
}

/*
unsigned char USART_Receive(void){
 while (!(UCSR1A & (1<<RXC)));
 return UDR1;
}
*/

int main(void){

 unsigned char getData;
 unsigned int index = 0;

 init_Serial0();
 init_Serial1();


 while(1){
  PORTB = 0x00;
  DDRB=0x00;

  while ( !(UCSR0A & (1<<RXC)) );

  getData = UDR0;

  for(index=0;index<8;index++){
   if( getData & (1<<index) ){
    PORTB = 0x1F;
    DDRB=0x1F;
    _delay_us(200);
   }
   else{
    PORTB = 0x00;
    _delay_us(200);
   }
  }
 }
}

저희가 한것은 tera term이라는 하이퍼터미널 프로그램을 써서 send file버튼을 누르고 파일을 선택하면 UDR0를 통해서 데이터를 1바이트씩 보내게 설계를 했고 아웃풋 포트에 PORTB에 LED를 연결하여 LED가시광 통신을 구현해보려고 합니다. 그에앞서 파일전송을 하면 LED가 깜박이는데 이게 파일을 바이너리로 인식해서 깜박이는건지 확실히 하기 위해

만약 ***.wav 파일이 011010100 이렇게 시작하면COM1의 하이퍼 터미널에 011010100으로 신호가 나오기 시작하는 동시에  com2에서의 하이퍼 터미널(PORTF포트에서 부터 받은 신호가)에 011010100으로 신호가 나오기 시작하면 바이너리 신호로 정확히 전달이 된다고 생각할 수 있을것 같습니다.

위과 같은 내용으로 atmega2에 리시브 소스를 작성하려고 하는데...

기초가 너무 부실해서...ㅠ.ㅠ다음주에 발표라는...

 

고수님들 도와주세요..

 

댓글 2
  • No Profile

    위의 소스에서 200usec로 ON/OFF하면 19200bps(약 52usec)도 불가능하지 않을까요?

    UART 출력핀에 라인드라이버와 LED를 같이 연결하면 해결될듯합니다. LED 저항은 포트 출력전류로 계산하시면 될것같구요...

  • No Profile

    광통신인가 봅니다.

    리모콘 송수신과 같습니다. 변조걸고 송신. 수신해서 복조. 통신광 노이즈는 필터사용. 적외선이 좋겠죠?


    프로그램은 프로토콜을 만드세요.

    프로토콜을 이용하면 각종 콘트롤이 쉬어집니다.

    계획, 검토, 실현방법을 미리 연구하고 구성하면 좋겠네요.


하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
812 마이크로프로세서 HOTatmega16을 이용한 작업을 하려고 합니다. 개발환경이 궁금합니다.2 고니77 1543 2010.12.10
마이크로프로세서 HOT고수님께 질문드리겠습니다..2 촌철살인 1353 2010.12.10
810 마이크로프로세서 HOT8051 주파수 측정기 소스때문에..5 지안이기여워 2546 2010.12.10
809 펌웨어 & 코딩언어 HOTrs232 통신프로그램.. 예딩 2360 2010.12.06
808 마이크로프로세서 HOTㅣ297+7026 으로 스텝모터제어 질문입니다 건들면터져 2921 2010.12.04
807 마이크로프로세서 HOT기본적인건데 틀을 잘못잡겠네요 ㅠㅠ3 김나나 1673 2010.12.04
806 마이크로프로세서 HOT스위치를 이용해서 LCD 문자 입력하기2 김나나 1855 2010.12.04
805 마이크로프로세서 HOT디버거 장단점 비교글2 만사통 2339 2010.12.02
804 마이크로프로세서 HOTarm사의_cortextm-m3의_특성_및_최신_동향2 만사통 1870 2010.12.02
803 마이크로프로세서 HOTATmega128RFA1 Wireless AVR이 기존의 atemga128과 특별히 다른점이 있나요 aerojang827 1621 2010.11.30
802 마이크로프로세서 HOTArtwork하려는데 어떤툴 및 책을 봐야 하는지?2 호호아자씨 947 2010.11.29
801 마이크로프로세서 HOT제발 설명 좀 해주세요..8 POV매니아 1400 2010.11.27
800 펌웨어 & 코딩언어 HOTc언어 능력자님을 찾아요 ㅠ 도와주세요12 진쓰 2305 2010.11.26
799 마이크로프로세서 HOT타이머카운트1번을 3번으로 변경하려는데 테스트해봐도 잘안돼네요..1 온니무 1466 2010.11.24
798 마이크로프로세서 HOTAVR128 소스문의드립니다. 훈돌이 1380 2010.11.24
797 마이크로프로세서 HOT마이컴이 하나 필요합니다...2 멍치 1315 2010.11.23
796 마이크로프로세서 HOT컴파일러 종류에대한 소스코드1 Engr James 1304 2010.11.22
795 마이크로프로세서 HOTatmega128에서 buzzer 소리를 조절할 수 있나요?4 어서오십쇼 4967 2010.11.21
794 마이크로프로세서 HOTADC평균값을 내고 PWM을 제어ㅠㅠㅠ3 말티즈코난 3008 2010.11.20
793 마이크로프로세서 HOTjtag 와 보드가 연결되지 않네요.ㅠㅠ4 sky2man 1361 2010.11.20
Prev 1 ... 13 14 15 16 17 18 19 20 21 22 ... 58 Next
  • 약속으로 배가 채워지지는 않는다.
    - C.H.스퍼전
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.