회원가입 ID/PW 찾기
AA

ADC 해서 그값을 세그먼트에 나타내는 소스입니다..
#include <mega128.h>            
#include <delay.h>

char seg_pat[16]= {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,
   0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};
                        
void  AD_disp(int);   // A/D 변환값 표시 
                
void main(void)
{             
        int   ad_val;
                  
 DDRB = 0xFF;   // 포트 B 출력 설정
        DDRF = 0xF0;      // PF4-PF7 출력, PF0-PF3 입력
                                                       
        ADMUX = 0x0;      // ADC0 단극성 입력 선택
        ADCSRA = 0x87;    // ADEN=1, 16MHz  256분주 -> 125kHz
        delay_ms(5);
        
         while(1){
               ADCSRA = 0xC7;                           // ADEN=1, ADSC = 1 변환 시작
               while((ADCSRA & 0x10) == 0);             // ADIF=1이 될떄까지
               ad_val = (int)ADCL + ((int)ADCH << 8);   // A/D 변환값 읽기     
              
               AD_disp(ad_val);    // A/D 변환값 표시
         }
}    

// A/D 변환값 표시
void AD_disp(int val)
{               
        float  fval;
        int  ival, buf;
        char N100, N10, N1;
       
        fval = (float)val * 5.0 / 1023.0;
        ival = (int)(fval  * 100.0 + 0.5);
       
        N100 = ival / 100;      // 정수부 추출
        buf = ival % 100;       
       
        N10 = buf / 10;         // 소수 첫째 자리 추출
        N1 = buf % 10;          // 소수 둘째 자리 추출

        PORTF = 0b11100000; // SEG 1(소수 둘째 자리 표시)  
       PORTB = seg_pat[N1];       
        delay_ms(1);
          
        PORTF = 0b11010000; // SEG 2(소수 첫째 자리 표시)
 PORTB = seg_pat[N10];             
 delay_ms(1);                         
 
      PORTF = 0b10110000; // SEG 3(정수부 표시)
        PORTB = seg_pat[N100];       
        delay_ms(1);
}

**************************************
        fval = (float)val * 5.0 / 1023.0;
        ival = (int)(fval  * 100.0 + 0.5);
**************************************
이부분이 이해가 안가요..정말 답답합니다..고수님들 부탁점 할게요..ㅜㅜ

댓글 4
  • 마이컴이 10bit AD 분해능을 가지므로 5V : 1024 = XV : 1 이렇게 해 보면 됩니다.

    즉, 마이컴에 들어오는 값이 0 ~ 1023 (총갯수1024) 인데요. 그것이 0V ~ 5V를 표현합니다.

    따라서 비례식으로 보시면 1의 변화량은 위와 같습니다.

    AD 채널에 5V가 들어간다고 하면 1023이 나와야 하는데 위의 식에 대입해 보세요.  val에 1023을 대입해 보시면

    5V가 나옵니다. 머 그런뜻이에요.

    ival = (int)(fval  * 100.0 + 0.5);  이것은 예를들어 fval 이 2.456볼트가 나온다고 하면 100을 곱했으니 245.6가 되고

    반올림 +0.5를 하니 246이 되겠네요.

    이런 뜻입니다.

    계산식같은 경우는 모를때 값을 대입해 보는것이 최고입니다.


  • No Profile
    어려워서 GG네요.
  • No Profile
    글쓴이 쭈우 08.12.11 16:12 댓글 좋아요 0 싫어요 0
    감사합니다...
    ^^
  • No Profile

    덕분에 알아갑니다 ㄳ 합니다^^:

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

search
번호 분류 제목 글쓴이 조회 수 날짜
63 드론/로봇/라인트레이서 HOT라인트레이서 부품선정시1 vsvm 1847 2010.04.03
62 드론/로봇/라인트레이서 HOTavr atmega128 공부중인데요1 짱백 1626 2010.03.20
61 드론/로봇/라인트레이서 HOT라인트레이서..2 vsvm 1342 2010.03.19
60 드론/로봇/라인트레이서 HOT정말 대단하네요.. 잘 봤습니다~9 오로로 5336 2010.02.10
59 드론/로봇/라인트레이서 HOT라인트렌서 만드는데 얼마나 걸리죠?8 오로로 1825 2010.02.10
58 드론/로봇/라인트레이서 HOT라인트레이서 스위치 없애는법2 검ㅁ마 1595 2010.01.19
57 드론/로봇/라인트레이서 HOT구로공구상가1동에서35동1층 아크마 13421 2009.12.07
56 드론/로봇/라인트레이서 HOT라인트레이서 어셈블러 소스 바램 2898 2009.11.17
55 드론/로봇/라인트레이서 HOT라인트레이서와 라인마우스 차이가 뭔가요..??2 놘닝구 1503 2009.08.27
54 드론/로봇/라인트레이서 HOT라인트레이서 센서를 만들어볼려고 합니다.1 임베초보 1661 2009.08.26
53 드론/로봇/라인트레이서 HOT아크마님~~+_+2 GoToHell 1309 2009.07.25
52 드론/로봇/라인트레이서 HOT아크마님 살려주세요~~3 GoToHell 1490 2009.07.19
51 드론/로봇/라인트레이서 HOT라인트레이서 센서부 질문 있어요 sinpk 1841 2009.07.04
50 드론/로봇/라인트레이서 HOT완전 초보입니다.ㅠ 도와주세요ㅠ 외계인놀이 1050 2009.05.18
49 드론/로봇/라인트레이서 HOT아크마님 질문이 있습니다..1 박정범 990 2008.12.21
48 드론/로봇/라인트레이서 HOT아크마님 다시 질문드릴께요1 박정범 1090 2008.12.20
47 드론/로봇/라인트레이서 HOT악마 라인트레이서 스위치관련 질문요..1 박정범 1188 2008.12.20
46 드론/로봇/라인트레이서 HOT마이컴을 공부하려면?2 필링사랑 1201 2008.12.15
45 드론/로봇/라인트레이서 HOTAVR128 센서+모터 소스입니다. 봐주세용;;2 천청심 2212 2008.11.16
44 드론/로봇/라인트레이서 HOT아크마라인트레이서중 핸들갑 먹이는부분에서 납득안되는부분이 ㅎㅎ4 초보꾼 3574 2008.10.30
  • 최대다수의 최대행복은 도덕과 입법의 초석이다.
    - 벤담
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.