اطلاعیه

Collapse
No announcement yet.

رجیستر ADCW

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

    رجیستر ADCW

    ببخشید من این برنامه رو نوشتم که برا انالوگ تو دیجیتاله :
    [code=c]#include <mega16.h>
    #include <stdlib.h>
    #include <alcd.h>
    #include <delay.h>

    int i=0;
    int c;
    char a[];

    interrupt [TIM0_OVF] void timer0_ovf_isr(void){
    i++;
    if(i==4){
    ADCSRA=0b11000111;
    c=ADCH;
    itoa(c,a);
    lcd_clear();
    lcd_puts(a);
    i=0;
    }
    }

    void main(){
    lcd_init(16);
    #asm("sei&quot
    ADMUX=0b01100011;
    ADCSRA=0b10000111;
    TCCR0=0x05;
    TCNT0=0x00;
    TIMSK=0x01;
    }[/code]

    تو این برنامه رجیستر ADCW کار نمیکنه یعنی اعداد چرت و پرت نشون اعداد منفی و بیش تر از 1023 و ...

    میشه یه کمک برسونید

    #2
    پاسخ : رجیستر ADCW

    سلام
    اینو تست کن
    [code=c] #include <mega16.h>
    #include <stdlib.h>
    #include <alcd.h>
    #include <delay.h>

    int i=0;
    unsigned int c;
    char a[20];

    interrupt [TIM0_OVF] void timer0_ovf_isr(void){
    i++;
    if(i==4){
    ADCSRA=0b11000111;
    c=ADCW;
    itoa(c,a);//
    lcd_clear();
    sprintf(a,"adc=%d",c);
    lcd_puts(a);
    i=0;
    }
    }

    void main(){
    lcd_init(16);
    #asm("sei&quot
    ADMUX=0b01100011;
    ADCSRA=0b10000111;
    TCCR0=0x05;
    TCNT0=0x00;
    TIMSK=0x01;
    }
    [/code]
    امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

    دیدگاه


      #3
      پاسخ : رجیستر ADCW

      این خط رو حذف کن
      [code=c] itoa(c,a);//[/code]
      امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

      دیدگاه


        #4
        پاسخ : رجیستر ADCW

        ADCH درسته ولی ADCW کار نمیکنه چون من تو دقت ده بیت میخوام

        دیدگاه


          #5
          پاسخ : رجیستر ADCW

          نوشته اصلی توسط mohbakh
          ADCH درسته ولی ADCW کار نمیکنه چون من تو دقت ده بیت میخوام
          الان کدی که گذاشتم جواب نداد؟
          امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

          دیدگاه


            #6
            پاسخ : رجیستر ADCW

            دست شما درد نکنه ولی خیر کار نکرد

            دیدگاه


              #7
              پاسخ : رجیستر ADCW

              سلام
              این رو هم تست کن ببین جواب میده
              [code=c] #include <mega16.h>
              #include <stdlib.h>
              #include <alcd.h>
              #include <delay.h>

              int i=0;
              unsigned int c;
              char a[20];

              interrupt [TIM0_OVF] void timer0_ovf_isr(void){
              i++;
              if(i==4){

              c=ADCW;

              lcd_clear();
              sprintf(a,"adc=%d",c);
              lcd_puts(a);
              i=0;
              }
              }

              void main(){
              lcd_init(16);
              #asm("sei&quot
              ADMUX=0b01000011;
              ADCSRA=0b11000111;
              TCCR0=0x05;
              TCNT0=0x00;
              TIMSK=0x01;
              }

              [/code]
              امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

              دیدگاه


                #8
                پاسخ : رجیستر ADCW

                خیلی ممنون درست شد
                فقط میشه بگین مشکل از کجا بود

                دیدگاه


                  #9
                  پاسخ : رجیستر ADCW

                  نوشته اصلی توسط mohbakh
                  خیلی ممنون درست شد
                  فقط میشه بگین مشکل از کجا بود
                  خواهش میکنم
                  مشکل از 1 بودن بیت ADLAR در ریجستر ADMUX بود که نتیجه تبدیل از سمت چپ در رجیسترهای ADCL , ADCH قرار میگرفت
                  البته در MAINریجستر ADCSRA هم در مد FREE تنظیم شده بود
                  متغیر C هم از نوع UNSIGNED باشه بهتره
                  اندازه ارایه رو در متغیر A مشخص نکرده بودی
                  امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                  دیدگاه

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