اطلاعیه

Collapse
No announcement yet.

نمونه برداری از ADC میکرو atmega32 برای چند لحظه

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

    نمونه برداری از ADC میکرو atmega32 برای چند لحظه

    من یه برنامه ای نوشتم که با استفاده از ADC میکرو atmega از ورودی نمونه برداری میشه، و با استفاده لز برنامه زیر میکرو مدام این عملیات نمونه برداری رو انجام میده ولی من میخام که این نمونه برداری و نمایش اون فقط برای چند ثانیه باشه و همیشه اینکارو انجام نده به عبارت دیگه ای بعد از یه مدت دیگه از این قسمت برنامه خارج بشه، کسی ایده ای واسه اینکار نداره؟؟؟
    کد:
    #include <mega32.h>
    
    // Standard Input/Output functions
    #include <stdio.h>
    #include <delay.h>
    
    
    
    
    #define ADC_VREF_TYPE 0x40
    
    // Read the AD conversion result
    unsigned char i=0;
    unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    // Delay needed for the stabilization of the ADC input voltage
    delay_us(10);
    // Start the AD conversion
    ADCSRA|=0x40;
    // Wait for the AD conversion to complete
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCW;
    }
    
    
    
    void main( )
    {
    
    while (1)
       {  
         i=1;
         adc_value=read_adc(i);
         putchar(ADCH);
         delay_ms(10);
       }
    }

    #2
    پاسخ : نمونه برداری از ADC میکرو atmega32 برای چند لحظه

    !
    ایده نیاز نداره! مقداری که نیاز دارید سمپل برداری بشه رو داخل یه FOR بنویسید و بعد از اون برنامه را بزارید داخل یک WHILE(1);

    دیدگاه


      #3
      پاسخ : نمونه برداری از ADC میکرو atmega32 برای چند لحظه

      یک کانتر بزار داخل حلقه که کم کم زیاد بشه و توی حلقه وایل اون رو چک کن.
      راه بهترش اینه که تایمر رو روشن کنی، اونجا زمانتو محاسبه کن و یک متغیر بزار اونجا تا مقدارش کم کم زیاد بشه. بعد تو حلقه وایل شرط رو بزار برابر شدنش با مقداری که میخوای.
      ---------
      .
      .
      ...........

      دیدگاه

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