پاسخ : ماکسیمم سرعت نوشتن و خواندن از پورت میکرو چقدره
فرض کن من Adc دارم که سرعتش 8 مگ هست
خوب من خروجی اونو به پورت میکرو وصل میکنم
ولی بیشتر از 1 مگ نتونستم دیتا بخونم
برای ریختن دیتا روی پورت هم همینجوره
اوکی
پاسخ : ماکسیمم سرعت نوشتن و خواندن از پورت میکرو چقدره
روی فرکانس 16 مگ و AVR چقدره
این برام یه سوال شده مثلا با کلاک 16 مگ نمیشه روی پورت میکرو فرکانس 2 مگ درست کرد فقط سرعت پردازش CPU 16M هست؟؟
برای خوندن از پورت هم همینجوره ولی دقیق نمیدونم چقدره کسی میدونه ؟؟؟
پاسخ : ماکسیمم سرعت نوشتن و خواندن از پورت میکرو چقدره
شما اگر بتونید کد اسمبلی نهایی کامپایل شده میکرو رو ببینید یا خودتون اسمبلی بنویسید و فرکانس کار میکرو مشخص باشه دقیقا مشخص هست که چه فرکانسی خواهد بود، هر دستور اسمبلی تعداد مشخصی سیکل اجرا داره مثلا صفر کردن یک پورت یا یک کردن اون، در هر پالس CPU هم ماکزیموم یک دستور میتونه اجرا بشه، حالا شما حلقه صفر و یک کردن رو نگاه کنید و ببینید چند دستور و چند سیکل توی حلقه شما اجرا میشه فرکانس دقیقتون به دست میاد.
از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
شاد و موفق باشید
پاسخ : ماکسیمم سرعت نوشتن و خواندن از پورت میکرو چقدره
یعنی شما میفرمائید که اگه من با فرکانس 16 مگ میکرو و زبان اسمبلی بیام
و یک پین 1 و 0 کنم باید فرکانس 8 مگ بهم بده ؟؟؟
خوب حالا فرض کنیم هر دستور توی c 4 تا سیکل بخوره که همشون اینجوری نیستند بعضی دستورا با یک سیکل هم
جواب میدند باید دیگه 2 مگ بهم بده ولی نمیده oo:
فکر کنم کسی تا حالا روش کار نکرده
با اسمبلی هم انقدر نمیشه امتحان کن.
سرعت پردازش داخل میکرو درسته 16 مگ هست ولی دلیل نمیشه سرعت io ها هم انقدر باشه مثلا توی کامپیوتر با سرعت CPU
هیچ وقت دیتاها روی پورت ها USB / LPT .... ریخته نمیشه
توی میکروکنترلر ها هم همین هست حتی ARM
ولی نمیدونم توی AVR چقدره
پاسخ : ماکسیمم سرعت نوشتن و خواندن از پورت میکرو چقدره
خیر قربان من کی گفتم نصفش میشه، فرض کن یک پین از میکرو رو بخواید صفر و یک کنید برنامه اسمبلی مثل برنامه زیر مینویسیم:
کد:
MAIN:
SBI PORTB,0
CBI PORTB,0
RJMP MAIN
توی این برنامه یک سیک طول میکشه دستور sbi اجرا بشه یک سیک طول میکشه cbi اجرا بشه و 2 سیکل هم زمان نیاز هست برای بازگشت به اول برنامه توسط دستور rjmp در کل 4 سیک یا در واقع 4 پالس نیاز هست، نکته دیگر هم اینه توی ان مورد مدت زمان یک بودن فقط 1 سیکل هست در حالی که مدت زمان صفر بودن 3 سیکل هست چون در زمانی که دستور پرس داره اجرا میشه هم پین ما هنوز صفر هست.
پس شکل موج متقارن نیست.
حالا این 4 سیکل اجرای برنامه اگر در فرکانس 1 مگ باشه میشه 4 میکروثانیه ولی در 16 مگ باشه 16 برابر سریع تر میشه
از آنجا که گاهی فرصت بازخوانی پست نیست، بابت غلط های املایی و نگارشی احتمالی معذرت میخوام.
هیچیک از پاسخ هایی که میدم را کاملا تایید نمیکنم و ممکن هست اشتباه کرده باشم، اگر من به نوشته ام مطمئن هستم شما مشکوک باشید.
اگر در حل مشکل من کمک کردید و دکمه تشکر رو نزدم حتما فراموش کردم کوچکترین کمک شما برایم ارزشمند است!
اگر به هر طریقی از من ناراحت شدید حتما با یک پیام خصوصی تذکر بدهید تا مشکل رو حل کنیم و رابطه ی صمیمانه، پایدار بماند.
شاد و موفق باشید
پاسخ : ماکسیمم سرعت نوشتن و خواندن از پورت میکرو چقدره
اگر در کد ویژن بخواهید
پین رو صفر و یک کنید باید PORTB.0=1بشه برای این کار این ها تابع نوشتن مقداری طول می کشه
از نظر من شما یه تایمر با زمان 0.5میکرو ثانیه بسازید در خط اول شروع کنه به شمارش و پورت رو یک کنه و در خط بعدی تایمر رو متوقف کنه بعد عدد رو برای شما ارسال کنه این چطوره؟
دیدگاه