اطلاعیه

Collapse
No announcement yet.

کمک برای راه اندازی adc میکرو

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کمک برای راه اندازی adc میکرو

    سلام دوستان میخواستم بایه پتانسیومتر که به adc وصل شده مقادیر رو بخونم و رو lcd نشون بدم ولی فقط چند میلی ولت اولو تبدیل میکنه و بقیه رو تبدیل نمیکنه . زبان برنامه نویسیم c هستش. با کدویژن.
    اینم برنامم.
    لطفا بگید مشکل از کجاس.
    کد:
    *********************************************/
    #include <mega16.h>
    #include <stdio.h>
    #include <delay.h>
    #include <alcd.h>
    #define ADC_VREF_TYPE 0xC0
    
    unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    delay_us(10);
    ADCSRA|=0x40;
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCW;
    }
    
    int a;
    char lcd_buf[10];
    void main(void)
    {
     
    PORTA=0x00;
    DDRA=0x00;
    
    
    PORTB=0x00;
    DDRB=0x00;
    
    
    PORTC=0x00;
    DDRC=0x00;
    
     
    PORTD=0x00;
    DDRD=0x00;
    
    
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;
    
    
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;
    MCUCR=0x00;
    MCUCSR=0x00;
    TIMSK=0x00;
    UCSRB=0x00;
    ACSR=0x80;
    SFIOR=0x00;
    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0x83;
    SPCR=0x00;
    TWCR=0x00;
    // Alphanumeric LCD initialization
    // Connections specified in the
    // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
    // RS - PORTC Bit 0
    // RD - PORTC Bit 1
    // EN - PORTC Bit 2
    // D4 - PORTC Bit 4
    // D5 - PORTC Bit 5
    // D6 - PORTC Bit 6
    // D7 - PORTC Bit 7
    // Characters/line: 8
    lcd_init(8);
    
    while (1)
       {
       a=read_adc(0);
       sprintf(lcd_buf,"Vref=",a);
       lcd_clear();
       lcd_gotoxy(0,0);
       lcd_puts(lcd_buf);
       delay_ms(100);
       }
    }
    دعا پشتِ دعا برای آمدنت
    گناه پشــــــتِ گناه برای نیامــدنت
    دل درگــیر ، مــیان این دو انتخــــــــــــــــــــاب
    کــــــــــــــدام آخر ؟ آمـــدنـت یا نیامدنـــــــــــــــــــــــت

    #2
    پاسخ : کمک برای راه اندازی adc میکرو

    سلام
    اول از دستور ftoa استفاده کن بعد sprintf و ببین درست نمیشه..
    در ضمن تا اون جایی که یادمه باید مقدار خوانده شده adc را به یک مقدا صحیح تبدیل کنی فکر کنم این جوری بود
    (5/1023*(adc))
    در ضمن متغیر ها تو اول برنامه بعد از توابع کتابخانه تعریف کن این جوری بعضی وقتا مشکل ایجاد میشه.

    موفق باشید :smile:
    قندیل، تندیس قطره هایی است که تسلیم جاذبه زمین نشدند. "چگوآرا"

    دیدگاه

    لطفا صبر کنید...
    X