NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4542 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 2 از 2

موضوع: مشكل با adc

  1. #1
    عضو جدید
    تاریخ عضویت
    Jul 2011
    نوشته ها
    6
    تشکر
    6
    تشکر شده 1 بار در 1 پست

    پیش فرض مشكل با adc

    سلام
    من با راه اندازي ADC 7s مشكل دارم.
    هر كاري كه مي كنم خروجي رو 1024 ميدهد با اينكه از ولتاژ VREF هم كمتر ميدهم
    قسمتي از كد:
    config_adc(0x70);
    start_adc();
    a1=read_adc(4);
    a2=read_adc(5);
    a3=read_adc(6);
    sprintf(str,"%d",a1);
    tftlcd_gotoxy(1,11);
    .
    .
    .
    ویرایش توسط a.amir : 13-01-2012 در ساعت 14:22

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    با سلام
    دوست عزيز از كد زير براي راه اندازي ADC استفاده كنيد. اگه بازم جواب نداد و سوالي داشتيد در خدمتيم.
    کد:
    //ADC Sample (without interrupt) MCK=48MHz
    
    unsigned char ad_channel;         //adc channel
    unsigned int  adv;               //value
    
    //ADC setup
    ad_channel =4;
    //ADC: PRES=4->MCK/10 SHTIM =3 -> 4/4,8MHz=833ns STARTUP =11 ->20us
    AT91C_BASE_ADC->ADC_MR = (3<24)|(11<<16)|(4<<8);
    //enable channel and set PIN to ADCx function (no need to write PIO!!)
    AT91C_BASE_ADC->ADC_CHER = (1<< ad_channel);   
    //start first conversion
    AT91C_BASE_ADC->ADC_CR = AT91C_ADC_START;
     
    while(1)                            //loop
    {
     ...
     //if data ready
     if(AT91C_BASE_ADC->ADC_SR & (1 << ad_channel))
     {
      //read channel register and reset end of conversion (EOC)
      adv =  (unsigned int*)((AT91C_ADC_CDR0) + ad_channel);
      //do whatever you want with ADC-value
     
      //start next conversion
      AT91C_BASE_ADC->ADC_CR = AT91C_ADC_START;
     }
    }                                  //end loop
    و يادتون نره كه پايه ADVREF رو به ولتاژ 3.3V وصل كنيد.
    _____________________________________
    _____________________________________

  4. تشکرها از این نوشته :


مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •