من یه برنامه ای نوشتم که با استفاده از 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);
}
}






دیدگاه