سلام به همگي
من ميخوام يک برنامه بنويسم که در قسمتي از آن برنامه خروجي ADC که در مد Single کار ميکنه از طريق وقفه شماره 12 يا همون Adc complete يک آرايه 128 تايي رو پر کنه... به اين صورت که در روتين وقفه و در دفعه اول که ADC انجام شد عضو اول آرايه و در بار دوم عضو دوم آرايه و .... در بار 128 ام عضو 128 آرايه برابر با ADCW بشه و سپس اين کار دوباره تکرار بشه....
روتين وقفه اي که من تو نوشتنش گير کردم يه چيزي مثل اين هست:
من ميخوام ADC در مد single کار کنه و مقدار رجيستر ADCW که شامل ADCH , ADCL هست برابر با يک عدد صحيح بشه و اين عدد صحيح هربار در يک عضو آرايه قرار بگيره و بره جلو و از طرفي عمليات ADC هم متوفق نشه...!!کد: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 پر کنم....
ممنونم