Lv. 55 (인턴) 31,185 납
10%
Exp. 30,363/31,360 | 10%
회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
436 드론/로봇/라인트레이서 HOT아크마 라인트레이서 동작 질문.. 천년동안 1725 2010.11.17
435 Analog & Mixed-Signal 설계 HOTFET 기초이론인데 이해가 안가는 부분이 잇어서 종이악마 1288 2010.11.16
434 Analog & Mixed-Signal 설계 HOT초보자 질문이요1 keroso 1287 2010.11.15
433 Analog & Mixed-Signal 설계 HOTsmps 회로도1 edward 3477 2010.11.11
432 Analog & Mixed-Signal 설계 HOTOrcad 버젼 질문1 등나무 1483 2010.11.11
431 Analog & Mixed-Signal 설계 HOT30w led 조명용 smps회로도 있으시면1 edward 3461 2010.11.10
430 Analog & Mixed-Signal 설계 HOT-24V 전원 설계 부탁 드립니다.4 발리전 2085 2010.11.07
429 드론/로봇/라인트레이서 HOT라인트레이서 소스 조의련 3848 2010.11.07
428 전기전자 아무거나 HOT온도센서 7seg에 온도 표시 회로 도움부탁드립니다.2 jeaade 3869 2010.11.04
427 전기전자 아무거나 HOT게임 트레이너를 만드는 것과 메모리 헤킹을 하려면 어떤것을 알아야 하나요?1 개굴휘 2956 2010.11.04
426 전기전자 아무거나 HOT제가 api프로젝트 하려고하는데 도움 부탁드립니다.1 강정훈 2359 2010.11.03
425 전기전자 아무거나 HOTorcad 10.5 다운시 error 생기는데 해결 방법 좀 알려주세요..1 최선을다해서.. 3243 2010.11.03
424 전기전자 아무거나 HOT마이컴공부 k231 1245 2010.11.03
423 드론/로봇/라인트레이서 HOT라인트레이서 초보용 제작 문의 드립니다.1 효연 2035 2010.11.02
422 전기전자 아무거나 HOT회로가 잘 작동되는지 확인 부탁드립니다.2 jeaade 2257 2010.10.31
421 전기전자 아무거나 HOT일반 똑딱이 스위치를 버튼스위로로 바꾸는 방법.. 멍치 2062 2010.10.30
420 전기전자 아무거나 HOT3상충전기를 단상으로 개조 가능할까요? 멍치 1151 2010.10.30
419 전기전자 아무거나 HOT회로도 분석 좀 도와주시면 감사하겠습니다1 소요 2339 2010.10.29
418 전기전자 아무거나 HOTdc 충전기 멍치 1259 2010.10.29
417 전기전자 아무거나 HOT센서와 컴퓨터를 연결하고 싶습니다.2 멍치 1870 2010.10.28
Prev 1 ... 13 14 15 16 17 18 19 20 21 22 ... 39 Next
  • 인간은 생각하는 것이 적으면 함부로 지껄인다.
    - 몽테스키외
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.