회원가입 ID/PW 찾기
AA
atmega128로 uart포트를 사용하여 통신할려구 합니다.

워낙 초보라서 프로그램 짜는 것 부터 쉽지않네요;;

제가 구현하고자 하는 프로그램은 대충 이런 것입니다.

LED신호가 adc에 의해 불이 들어오면 uart포트를 통해 컴퓨터 창에 1이라는 신호가 들어오게끔 만드는 것이고 그반대의

경우는 0이 뜨게끔 만드는 것입니다.

학교 조교가 adc register값을 uart register에 실어서 보내면 된다고 하셨는데 감이 안오네요;;;

프로그래밍을 해야 하는데  제발 부탁드립니다...도와주세요
댓글 3
  • No Profile

    #define FOSC 7372800  // main clock speed
    void uart1_init(unsigned long baud_data)
    {
     unsigned long UBRR_DATA;
     
     // 송수신 속도 설정
     UBRR_DATA = ((FOSC/baud_data)/8)-1;

     UBRR1L = (unsigned char)(UBRR_DATA & 0xFF);
     UBRR1H = (unsigned char)(UBRR_DATA >> 8);
     
     // Enable receiver and transmitter
     SETBIT(UCSR1A, U2X1);    // double speed
     
     SETBIT(UCSR1B, RXCIE1);    // RXC interrupt enable
     SETBIT(UCSR1B, RXEN1);    // RX enable
     SETBIT(UCSR1B, TXEN1);    // TX enable

     // Data bit 8
     SETBIT(UCSR1C, UCSZ10);  
     SETBIT(UCSR1C, UCSZ11);

     return;
    }

    // usart 1 rx interrupt
    #pragma vector = USART1_RXC_vect
    __interrupt void USART1_RXC_func(void) 
    {
        // data 받는곳
     ucRx1_Buff[ucRx1_Count++] = UDR1;
     return;
    }

    보낼땐 이렇게
    UDR1 = '1';

    제가 쓰는 함수에서 간단하게 정리해왔습니다.
    제 UART전체 소스를 드리면 아마 더 헤메실거 같아서.. 간단하게 필요한 내용만 정리 해봤습니다.

    정확한것은 Data sheet UART부분 보시면 기본 소스가 있습니다. 그것만으로도 하시고자하는걸 충분히 하실수 있다고생각합니다.

    현재 이소스는 UART 0가 아닌  UART1 을 기준으로 되어있으며, 레지스터를 바꿔 설정하시면 uart 0도 가능합니다.

    main 에서 uart1_init(9600); 이렇게 넣어주시면, 9600bps 로 설정이 됩니다.

    추리다 보니 오류 및 동작이 안될수 있으니 참고만하시고, 책과 Datasheet 보시고 프로그램 하시면 그닥 어렵지는 않을것이라 생각 됩니다.

  • No Profile
    아. 그리고 FOSC는 메인 클럭 크리스탈 스피드입니다. 현재의 예는 7.3728Mhz인 경우입니다. 16Mhz 이면
    #define FOSC 16000000 으로 고치시면 됩니다.
  • No Profile
    void tx_char(unsigned char tx_data)
    {
      //시리얼포트로 데이터 송신이 완료되고 송신버퍼가 준비되었는지 검사
      while((UCSR0A&0x20) == 0x00);
      UDR0 = tx_data; //시리얼 포트를 통하여 데이터 전송
    }

    하나 놓으시고 쓰실때는 tx_char('1'); 하면 pc로 아스키코드 1이 갑니다.

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

search
번호 분류 제목 글쓴이 조회 수 날짜
136 ECAD 아무거나 HOT그림의 떡이란 말이 정확한듯1 바다거북 5274 2010.11.02
135 ECAD 아무거나 HOT50옴이라는 것은 특성임피던스로 알고 있는데 바다거북 5131 2010.11.02
134 Allegro & OrCAD HOT이크 큰일이군 설치를 행하는데.. 어쩌면 ..... tomas 1485 2010.11.01
133 ECAD 아무거나 HOTmultisim에서 회로모델 변경 방법 아시는 분 킹덤 5326 2010.10.28
132 PADS HOTLIB다시 받을 만한곳 없나요1 거북이얌 1721 2010.10.27
131 PADS HOT비아 사이즈의 궁금점이요...5 매일납땜 3561 2010.10.24
130 PADS HOT2005 pads logic 교육자료19 거북이얌 3136 2010.10.21
129 PADS HOTLIB 불러 드리기 ㅜㅜ 안돼요 거북이얌 1675 2010.10.18
128 Allegro & OrCAD HOTPCB 레이아웃 질문 드릴게요 ^^2 이주영 1592 2010.10.18
127 ECAD Simulation HOTPSPICE 질문좀 드릴께요1 WOW 2122 2010.10.14
126 PADS HOTPADS 9.2 설치 후 ORCAD Capture 실행 않되는 문제.2 머털도사 7032 2010.10.12
125 ECAD Simulation HOTorcad 파형 볼때 counter.olb에 있는 라이브러리에 대해서요..1 노뜨라인 2426 2010.10.08
124 Allegro & OrCAD HOT4층 PCB 제작 어렵나요?6 헨슨 3416 2010.10.07
123 PADS HOT윈도우7에서 PADS2005가 느립니다.1 윈다리아 3502 2010.10.03
122 Allegro & OrCAD HOTOrcad 16.2 버전에 gerber tool1 TreeOfDream 2987 2010.10.01
121 ECAD Simulation HOT이런 오류가 날때 어떻게 해야 하죠??? ㅠㅠ;;;4 owen 1575 2010.09.25
120 PADS HOTpads 9.2 윈도우7 설치후 PCB 실행시 너무 느린 이유?3 호랭이윈 4255 2010.09.13
119 PADS HOTWin7 64Bit 운영체제에 Pads2009 설치문의3 망군 3502 2010.09.13
118 Allegro & OrCAD HOTpcb 기본용어1 아크마 2778 2010.09.08
117 PADS HOT오토캐드로 그린 도면을 PADS로 import했는데...3 chani0988 2901 2010.09.08
Prev 1 ... 21 22 23 24 25 26 27 28 29 30 ... 32 Next
  • 경험은 사상의 아들이고 사상은 행동의 아들이다. 책에서 인간을 배울 수는 없다.
    - 디즈레일리
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.