با سلام کسی میدونه وقتی با زبان c برنامه می نویسی از کجا میتونی بفهمی هر دستور چند سیکل طول میکشه یا چقدر زمان میگیره؟ممنون
اطلاعیه
Collapse
No announcement yet.
طول سیکل هر دستور
Collapse
X
-
پاسخ : طول سیکل هر دستور
زمان اجرا برای هر دستور فقط برای دستورات اسمبلی قابل محاسبه هست.یعنی باید برنامه C رو تبدیل به اسمبلی کنی بعد با توجه به فرکانس میکرو زمانش رو حساب کنی.
یه راه دیگه که این دردسر ها رو نداشته باشه استفاده از Avr Studio .اگه فایل .cof برنامتون که با C نوشته شده رو با avr studio باز کنید امکان دیباگ رو پیدا میکنید.
ازسمت چپ برنامه process رو باز کنید و برنامه رو خط به خط اجرا کنید. این جوری همه ی اطلاعات پردازنده دستت میاد.
اگه درست متوجه کار نشدی بگو تا کامل تر توضیح بدم.[img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]
-
پاسخ : طول سیکل هر دستور
می توان با آنالیز روش تبدیل سی به اسمبلی طول سیکل برنامه سی را محاسبه کرد یکم مفصله ولی در درس اسمبلی رشته کامپیوتر برسی میشه
اگه حدودی بخوای چون سی خودش سطح پایینه خیلی نزدیک به اسمبلی است می شه گفت
در اسمبلی
دستورات خواندن و نوشتن در ثبات به 1 سیکل نیاز دارند
دستورات مقایسه ثبات به 1 سیکل نیاز دارند
دستورات انشعاب شرطی یا همان پرش 2 سیکل نیاز دارند
فرا خوانی تابع یا اتفاق وقفه به 7 سیکل نیاز دارند
حال به صورت حدودی میشه کفت دستور زیر در سی
کد:for (i=0;i<5;i++) k=k+7;
میشه گفت توابع و وقفه ها به 7 پالس ( تو کد ویژن یه تیک است که موقع فراخوانی توابع تمام ثبات ها پوش نشن که اگه پوش بشن 32 پالس هم بیا روش)
و حلقه ها و if به 5 پالس نیاز داره
دوست عزیز من قبلا هم گفتم زبان سی و بیسک زبان مناسبی برای میکرو با کلاک حد اکثر 16 مگ نیست (کلا ازش سی و بیسک به شی گرا بودنشون و کامپوننت های ویژوالی شونه که اون هم میشه ویژوال بیسیک و ویژوال سی ) تو کار های دقیق و حساس و سریع ( غیر ویزوالی ) اسمبلی بهتره حتی یادگیریش سادتره زبون خود میکرو است
تنها موردی که همه آدما یقین دارن خدا در حقش زیاد لطف کرده
داشتن عقله زیادتر از دیگر آدم ها است
دیدگاه
-
پاسخ : طول سیکل هر دستور
نوشته اصلی توسط زواراگر لطف کنید کاملتر توضیح بدید و نرم افزارم اگر دارید بذارید ممنون میشم
کار باهش هم اصلا سخت نیست.فقط کافیه فایل cof که کامپایلر ساخته رو با avr studio باز کنی.سمت چپ تو قسمت work space تمام ریجستر های میکرو رو میبینی.حالا با کلید F10 ,F11 برنامه رو خط به خط اجرا کن.و تغیرات ریجستر CPU رو تو قسمت processor ببین. فقط یادت نره کریستال میکرو و نوع میکرو رو درست کنی(alt +o رو بزن تا بتونی این کار رو بکنی)
اگه جاییش مشکلی بود بگو.[img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]
دیدگاه
دیدگاه