회원가입 ID/PW 찾기
AA

----------------------------------------------------------------------------------------------------
| 1. 컴파일러등의 개발환경 : avr studio 4
| 2. 회로나 소스코드의 제어목적:  온도센서 값을 하이퍼 터미널로 출력하려고 함
| 3. 증상과 예상되는 문제점 : 터미널내 값이 제대로 출력이 안됩니다. 왜 그럴까요.
| PF7에 온도센서 V out 값을 입력시켰습니다.
----------------------------------------------------------------------------------------------------

#include<avr/io.h>
#include<stdio.h>
#include<avr/delay.h>
#include <avr/interrupt.h>

unsigned int baudrate[15] = {832, 416, 207, 138, 103, 68, 51, 34, 25, 16, 8, 7, 3, 1, 0};
unsigned char temp;
unsigned int temp00;
float adc0;
char value[32];

void serial0_init(void)
{
DDRE = 0xfE;
UBRR0H = baudrate[2]>>8;
UBRR0L = baudrate[2];
UCSR0A = 0x02;
UCSR0B = 0x18;
UCSR0C = 0x06;
temp = UDR0;
}

void adc_init() {
  ADMUX= 0x01;        // ADC0(PF0)핀, AVCC 단자, 단극성 입력
  ADCSRA= 0x8C;       // ADC Enable, ADC Interrupt Enable, 16분주(1MHz)
}

SIGNAL(SIG_ADC) {               // ADC 완료 인터럽트
  temp00 =  ADCL;                 // ADCL 먼저 읽기
  temp00 += (ADCH<<8);
  adc0= temp00;
}

void tx_char(unsigned int tx_data)
{
  //시리얼포트로 데이터 송신이 완료되고 송신버퍼가 준비되었는지 검사
  while((UCSR0A&0x20) == 0x00);
  UDR0 = tx_data; //시리얼 포트를 통하여 데이터 전송
}

 

void tx_string(unsigned char *str_data)
{
  while(*str_data != 0x00){  //문자열의 끝부분이 아니라면
    tx_char(*str_data);      //시리얼포트로 한개의 문자를 송신한다.
    str_data++;
  }
}

int main(void)
{
unsigned char i;
float temperature= 0;
adc_init();
serial0_init();
//sei();

while(1)
{

    temperature= 100*adc0/204.8-3;
    sprintf(value,"ADC0 : %4d\n",adc0);
    //sprintf(value,"temperature : %03d℃\n",temperature);
 //sprintf(value,"%03d℃\n",temperature);
 //printf("hello?\n");
 //sprintf(value,"degree %d\n",temperature);

    tx_string(value);    // PC 로 송신 
    tx_char(0x0A);
    tx_char(0x0D);
// 0.5sec 마다 실행 동작 이곳에 넣기
 _delay_ms(2500);
 _delay_ms(2500);

//temp = serial_rx();
//serial_tx(temp);
}

return 0;
}

댓글 3
  • No Profile

    어떤 온도센서인지 설명부터 해주셔야겠는데요;;
    기본적으로 원하는 데이터를 하이퍼터미널로 전송하는 것은 되는건가요?
    소스중에 의심구역을 하이라이트 해주시면 감사하겠습니다.

  • No Profile
    AD 컨버터가 필요한 거 보니 기본적인 LM35 센서 같은데요
  • No Profile
    ADC start를 주지 않은 것 같네요.
    ADC interrupt가 걸리는지 확인해 보세요.
    그리고 평균을 계산하는 방법이 틀린 것 같네요...
    ADCH<<8이면 ADCH가 8bit이므로 그 결과가 0일텐데..
    프로그램을 좀더 세밀하게 확인을 하셔야 할 듯합니다. 중간 중간에 debugging 를 넣어 확인하심이...

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

search
번호 분류 제목 글쓴이 조회 수 날짜
75 중고장터 HOTAVR JTAGICE MK2 에뮬레이터 팝니다. bluewing 5044 2010.10.06
74 중고장터 HOTARM 개발보드 마이크로비젼 MV2440-LCD 팝니다. bluewing 4215 2010.10.06
73 중고장터 HOT뉴코란도 구합니다.11 설록맨 3177 2010.10.05
72 중고장터 HOTUSB HUB IC판매 Newface 3483 2010.09.24
71 중고장터 HOT삼성 3.5인치 TFT-LCD (Touch 포함) 싸게 드려요. 삼성 3.5인치 TFT-LCD (Touch 포함) 싸게 드려요. 삼성 3.5인치 TFT-LCD (Touch 포함) 싸게 드려요.1 띵요루슛 4352 2010.09.17
70 중고장터 HOT오실로스코프 싸게 사고 싶어요~7 야웅이 3263 2010.09.13
69 중고장터 HOTSTR-6253 판매합니다.2 행국강기 3919 2010.09.07
68 중고장터 HOTnewtc꺼 AVR MEGA 128pro 개발키트(풀셋) 구합니다. 어쩌다 3240 2010.08.21
67 중고장터 HOTD&J DC모터 3개 판매 로봇용적합 IGM30 12V 엔코더 타입1 아크마 6593 2009.01.11
66 중고장터 HOTCMOS 카메라 OV9650 판매1 아크마 3760 2010.07.28
65 중고장터 HOT삼성 3.5인치 TFT-LCD (Touch 포함) 싸게 드려요.2 용가리3 3291 2010.07.17
64 중고장터 HOTmicrochip 사 ac motror controller demo board 이단장 3377 2010.06.17
63 중고장터 HOT각종 부품 팝니다. 캐리안 3653 2010.06.10
62 중고장터 HOT기울기센서 (TILT SA1) 팝니다 폴라리스 4198 2010.06.05
61 중고장터 HOT중고 서적구해요..^^13 로이lee 4169 2010.05.26
60 중고장터 HOT컴퓨터 사요2 제갈공ㅇㅇ 3864 2010.05.24
59 중고장터 HOT소리인식센서 구합니다!1 재럴 3667 2010.05.22
58 중고장터 HOTHELICOMM 사의 IP-LINK 2134- 2264 모듈 구매합니다. 아크마 4121 2010.05.20
57 중고장터 HOT터치 lcd안쓰시는거 구입합니다1 duziny 3888 2010.05.13
56 중고장터 HOT어셈블리어 교재 구합니다~1 배개 3711 2010.04.28
  • 사랑하고 사랑받는다는 것은 태양을 양쪽에서 쪼이는 것과 같다.
    - 비스코트
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.