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