سلام
اگر در حین تبدیل adc وقفه ای رخ بده مثلا وقفه سرریز شدن یکی از تایمرها،عملکرد adc رو مختل میکنه؟
اگر در حین تبدیل adc وقفه ای رخ بده مثلا وقفه سرریز شدن یکی از تایمرها،عملکرد adc رو مختل میکنه؟
unsigned int Old_Value, New_Value; unsigned char Flag; interrupt [ADC_INT] void adc_isr(void) { New_Value=ADCW; // گرفتن مقدار if(Old_Value > 0 && New_Value > 0) // اگر مقادیر صفر نبود یعنی دفعه اول نبود { if(New_Value != Old_Value)Flag=1; // اگر اختلاف بین مقادیر بود } Old_Value = New_Value; // جایگزینی مقادیر فعلی و قبلی برای اندازه گیری بعدی delay_ms(250); ADCSRA=0xCD; } Void main(){ . . While() { itoa(a,s); lcd_gotoxy(0,0); lcd_puts(s); lcd_putsf(" "); if(Flag==1) lcd_puts("NC"); //اگر اختلاف داشتند } }
دیدگاه