دوستان من با 2368 نیاز دارم تا نمونه برداری کنم . برنامه نمونه برداریم هم اینه :
مشکلی که دارم اینه : وقتی a=read_adc رو مینویسم ، قبلش یکی از تایمرها را راه میندازم و بلافاصله بعد از همین کد read_adc تایمر را متوقف میکنم . زمانی که میده حدود 7/5 میکروثانیه است درصورتی که باید حدود 3 میکرو ثانیه باشه .
کلاک میکرو را روی 72 تنظیم کردم .
تقسیم بر 4 میره هم توی adc هم توی تایمر . هیچ کار دیگه هم به جز adc انجام نمیدم ولی زمانش درست در نمیاد .
کسی میدونه چرا adcاش سرعتش از اون چیزی که توی دیتاشیت نوشته کمتره ؟؟؟
ممنون میشم کسی راهنمایی کنه .
unsigned short read_adc(void){
AD0CR&=0xFFFFFF00;
AD0CR|=(1<<24)|(1<<4);
while((AD0DR4&0x80000000)==0);
AD0CR&=0xF8FFFFFF;
return((AD0DR4>>6)&0x03FF);
}
AD0CR&=0xFFFFFF00;
AD0CR|=(1<<24)|(1<<4);
while((AD0DR4&0x80000000)==0);
AD0CR&=0xF8FFFFFF;
return((AD0DR4>>6)&0x03FF);
}
مشکلی که دارم اینه : وقتی a=read_adc رو مینویسم ، قبلش یکی از تایمرها را راه میندازم و بلافاصله بعد از همین کد read_adc تایمر را متوقف میکنم . زمانی که میده حدود 7/5 میکروثانیه است درصورتی که باید حدود 3 میکرو ثانیه باشه .
کلاک میکرو را روی 72 تنظیم کردم .
تقسیم بر 4 میره هم توی adc هم توی تایمر . هیچ کار دیگه هم به جز adc انجام نمیدم ولی زمانش درست در نمیاد .
کسی میدونه چرا adcاش سرعتش از اون چیزی که توی دیتاشیت نوشته کمتره ؟؟؟
ممنون میشم کسی راهنمایی کنه .