سلام به همگی
من میخوام یک برنامه بنویسم که در قسمتی از آن برنامه خروجی ADC که در مد Single کار میکنه از طریق وقفه شماره 12 یا همون Adc complete یک آرایه 128 تایی رو پر کنه... به این صورت که در روتین وقفه و در دفعه اول که ADC انجام شد عضو اول آرایه و در بار دوم عضو دوم آرایه و .... در بار 128 ام عضو 128 آرایه برابر با ADCW بشه و سپس این کار دوباره تکرار بشه....
روتین وقفه ای که من تو نوشتنش گیر کردم یه چیزی مثل این هست:
من میخوام ADC در مد single کار کنه و مقدار رجیستر ADCW که شامل ADCH , ADCL هست برابر با یک عدد صحیح بشه و این عدد صحیح هربار در یک عضو آرایه قرار بگیره و بره جلو و از طرفی عملیات ADC هم متوفق نشه...!!
تو کتاب آقای پرتوی فر نوشته بود برای شروع مجدد ADC از دستور ADCSRA|=40; استفاده کنیم... خودم فکر میکنم این عبارت باید با 80 هگز OR بشه نه 40 ...!! نظر شما چیه..؟
یه کمکی بکنید بتونم آرایه ام رو بطور متوالی با ADCW پر کنم....
ممنونم
من میخوام یک برنامه بنویسم که در قسمتی از آن برنامه خروجی ADC که در مد Single کار میکنه از طریق وقفه شماره 12 یا همون Adc complete یک آرایه 128 تایی رو پر کنه... به این صورت که در روتین وقفه و در دفعه اول که ADC انجام شد عضو اول آرایه و در بار دوم عضو دوم آرایه و .... در بار 128 ام عضو 128 آرایه برابر با ADCW بشه و سپس این کار دوباره تکرار بشه....
روتین وقفه ای که من تو نوشتنش گیر کردم یه چیزی مثل این هست:
کد:
interrupt [12] void adccomplete (void) { for(i=0;i<128;i++){ x = adcw; A[i]=x; ADCSRA|=40; }
تو کتاب آقای پرتوی فر نوشته بود برای شروع مجدد ADC از دستور ADCSRA|=40; استفاده کنیم... خودم فکر میکنم این عبارت باید با 80 هگز OR بشه نه 40 ...!! نظر شما چیه..؟
یه کمکی بکنید بتونم آرایه ام رو بطور متوالی با ADCW پر کنم....
ممنونم
دیدگاه