회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
568 마이크로프로세서 HOTatmaga128 에서 uart통신을 두개 동시에 쓸수있나요?4 광주공돌이 1445 2010.07.24
567 마이크로프로세서 HOT스텝모터 연결법 좀 알려주세요10 보리리 3634 2010.07.20
566 마이크로프로세서 HOTAVR 학습 방법에 대해...9 Brad 1388 2010.07.20
565 마이크로프로세서 HOTPIC16F684 외부인터럽트 질문입니다.2 세종허리케인 3567 2010.07.15
564 마이크로프로세서 HOT안녕하세요^^ ATmega128 초보자 입니다.^^5 sk민호 1147 2010.07.15
563 마이크로프로세서 HOTPIC16F684 프로그램 로직 질문드립니다..초보에요..ㅠㅠ 세종허리케인 971 2010.07.14
562 마이크로프로세서 HOTText LCD 동작을 안해서..ㅠㅠ7 호그니 1406 2010.07.13
561 마이크로프로세서 HOTCadence SPB 16.2 설치 방법 알려주세요 ㅠ4 해녀땅파 4963 2010.07.09
560 마이크로프로세서 HOTavr128로 IO 포트로 레지스터없이 I2C통신하기1 미틴개발자 2311 2010.07.08
559 마이크로프로세서 HOT8051과 RFID를 연동할때 C언어 소스..1 president 1767 2010.07.02
558 마이크로프로세서 HOT8051 전공은 무엇을 ㅠ?7 날아라신동 1049 2010.07.01
557 마이크로프로세서 HOT8051에서 timer 와, rs232 동시에 사용하기.3 처니 2095 2010.06.29
마이크로프로세서 HOT온도센서 하이퍼 터미널 값이 제대로 출력이 안되요 ㅠㅠ3 꿈꾸는몽상가 3137 2010.06.29
555 마이크로프로세서 HOTatm 128 전자자물쇠 관련.2 수환 1403 2010.06.25
554 마이크로프로세서 HOT8051 막 배우기 시작햇는데 도와주세요4 츄리닝 1165 2010.06.25
553 마이크로프로세서 HOTFirmsys RFID Demo Kit와 atmaga128 UART통신좀 봐주세요~1 해돌이 2892 2010.06.24
552 마이크로프로세서 HOT완전초보가 당장 만들 수 있는게 뭐가 있을까요?13 dozzamon 1315 2010.06.22
551 마이크로프로세서 HOT어셈블리어 난수 생성1 croquette 2529 2010.06.21
550 마이크로프로세서 HOT4433을 atmega8로 어셈블리어 수정 부탁 드릴게요 qusgmltjd 1383 2010.06.21
549 마이크로프로세서 HOT스위치 / LED 제어관련해서 질문드립니다ㅠ1 으잌ㅠㅠ 1422 2010.06.20
Prev 1 ... 17 18 19 20 21 22 23 24 25 26 ... 50 Next
  • 인간의 교육은 태어났을 때부터 시작된다.
    - 루소
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.