회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
14 구인구직 HOT사람인 - 월급 1000만원 프로젝트, 프로그래머 모집 쭈니닷 5052 2012.06.18
13 구인구직 HOT(주)엑스큐어넷 - 소프트웨어 개발자(프로그래머) 채용 쭈니닷 4921 2012.06.12
12 구인구직 HOT(주)시뮬라인 - 기술개발본부 소프트웨어 팀 신입/경력사원 채용공고 쭈니닷 5483 2012.06.11
11 구인구직 HOT㈜엔써즈 - 시스템엔지니어 신입사원 모집 쭈니닷 6358 2012.06.08
10 구인구직 HOT㈜고우넷 - unix 엔지니어 채용 콘마개마 3839 2012.06.05
9 구인구직 HOT전액무료 자바(java)기반 하이브리드 프레임웍개발 안드로이드 개발교육과정 cocoa13 3402 2012.05.14
8 구인구직 HOT[교육부담 0%] 이공계 전액무료 하이브리드 앱 개발자 취업확정자 교육연수과정 cocoa13 4070 2012.05.01
7 구인구직 HOT[전액무료교육] 구로디지털 단지 자바개발 업체 채용확정자 취업교육” 안드로이드 개발 및 프로젝트 과정 cocoa13 3633 2012.04.30
6 구인구직 HOT[전액무료과정] 웹디자이너 양성교육 비주얼 컨텐츠 디자인 과정 안내 cocoa13 4625 2012.04.26
5 구인구직 HOTPOWER설계 및 하드웨어 경력자 찾아요. 박우종 4999 2012.03.07
4 구인구직 HOT회로수리 및 수땜, ECO작업등 필요하시면 연락주세요. 세윤파파 8662 2012.01.27
3 구인구직 HOT실력있는 펌웨어 엔지니어를 모집합니다. JamesHan 8119 2011.12.27
2 구인구직 HOT(주)로벤 연구소에서 연구원을 모집합니다. maddog 6498 2011.11.10
1 구인구직 HOT[급구] PCB 설계 경력자 & H/W 및 펌웨어 엔지니어 모집 용가리3 13456 2010.12.23
Prev 1 ... 5 6 7 8 9 10 11 12 13 14 Next
  • 사랑하고 나서 잃는 것은 전혀 사랑하지 않았던 것보다 더 낫다.
    - 테니슨
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.