회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
2964 자유주제 HOT멋진바탕화면올립니다13 9219jaks 2525 2010.07.01
2963 드론/로봇/라인트레이서 HOTatmega128 공부방법에 대해서..5 k_minsuda 1777 2010.07.01
2962 자유주제 HOT너는 내가 조종한닷...ㅋㅋㅋㅋ17 분노의꽃돼지 1810 2010.06.30
2961 PADS HOT현재 PCB를 가지고있는데요10 레즈온 1857 2010.06.30
2960 자유주제 HOT납 100개 .. 쉬워보이는데 ㅎㅎ10 리움 4295 2010.06.30
2959 마이크로프로세서 HOT8051에서 timer 와, rs232 동시에 사용하기.3 처니 2090 2010.06.29
마이크로프로세서 HOT온도센서 하이퍼 터미널 값이 제대로 출력이 안되요 ㅠㅠ3 꿈꾸는몽상가 3129 2010.06.29
2957 자유주제 HOT웃긴사진 ㅋ16 wassum 2771 2010.06.29
2956 PADS HOTPADS2007 설치관련 질문드려요7 식당 5610 2010.06.29
2955 ECAD Simulation HOTDependent Source를 Psipce에 그리는방법...1 참치통조림 2285 2010.06.29
2954 자유주제 HOT월드컵 이야기가 없네요 ㅎㅎ6 날아라신동 4695 2010.06.29
2953 전기전자 아무거나 HOT8051쪽 개발툴은 정확하게 무슨 진로인가요?1 날아라신동 820 2010.06.29
2952 드론/로봇/라인트레이서 HOTc언어 공부 방법 문제요 ㅠ2 날아라신동 1377 2010.06.29
2951 자유주제 HOT반갑습니다. wassum 3776 2010.06.28
2950 펌웨어 & 코딩언어 HOT프리스케일 mcu 쓰시는 분은 없나요?1 스즈루 956 2010.06.28
2949 자유주제 HOT좋은 자료가 많네요6 좋은소리 3785 2010.06.28
2948 전기전자 아무거나 HOTprovsm 에서 arm7 으로 시뮬레이션 하는 방법이 궁금합니다.2 A.k.a D.k 1423 2010.06.27
2947 전기전자 아무거나 HOTLogic(로직) 가르치는 학원 없을까요? 대구.경산 내에서만요 ㅎ 로직자격증연습중 1030 2010.06.25
2946 전기전자 아무거나 HOT여러개의 센서를 구동시키기 위한 전압 인가에 대한 질문입니다.3 MC雲 1346 2010.06.25
2945 자유주제 HOT흠냐 마이컴 처음이라 어렵 0-;;3 카린 16065 2010.06.25
  • 사랑은 일에 굴복한다. 만일 사랑으로부터 빠져 나오기를 원한다면, 바쁘게 되라. 그러면 안전할 것이다.
    - 오비디우스
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.