Why is the ADC value read only once? #3
Unanswered
Mr-HatefNowrouzi
asked this question in
پرسش و پاسخ عمومی (General Q&A)
Replies: 1 comment
-
سلام و درود، به نظر میرسه مشکل این باشه که بعد از کامل شدن تبدیل، بیت ADIF پاک نمیشه. این بیت وقتی که تبدیل ADC تموم میشه، به صورت خودکار تنظیم میشه، اما برای آماده کردن ADC برای تبدیل بعدی، باید به صورت دستی این بیت رو پاک کنی. با یک کردن بیت ADIF میتونی این flag رو پاک کنی: ADMUX = ADC_CHANNEL;
ADCSRA |= (1 << ADSC);
while((ADCSRA & (1 << ADIF)) == 0) {}
rawSignal = (ADCH << 8) | ADCL;
ADCSRA |= (1 << ADIF); // آمادهسازی برای تبدیل بعدی |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
سلام میخوام مقدار خوانده شده سیگنال ورودی ADC که داخل رجیستر ADCH ,ADCL ریخته شده را با بیت ماسک به هم بچسبانم و داخل متغییری بریزیم. کدم مشکلش اینه که بعد run شدن برنامه فقط یک بار عملیات به هم چسباندن رو انجام میدهد و داخل rawSignal میریزد. و دیگر مقدار خوانده شده سیگنال را داخل متغییر rawSignal نمیریزد
Beta Was this translation helpful? Give feedback.
All reactions