شما هرجایی از برنامه که نیاز به ریست نرم افزرای داری فقط کافیه از دستور اسمبلی RESET استفاده کنی. استفاده از تایمر واچداگ اصلا منطقی نیست.
لطفا به datasheet میکروکنترلرتون بخش Instruction Set Summary مراجعه کنید.
نحوه فراخوانی دستورات اسمبلی در کامپایلرهای مختلف فرق می کنه.
به سایتش مراجعه کن: http://www.mecanique.co.uk/products/...truction%20Set
دستور دوم: ASM..ENDASM
یعنی اگر خواستی وسط برنامه دستورات اسمبلی استفاده کنی، به این صورت عمل میکنی: مثال برای دستور RESET
ASM
RESET
ENDASM
دستور RESET دقیقا یک دستور نرم افزاری ریست کردن PICآهستش. عرض کردم به بخش Instruction Set Summaryآ از Datasheetآ میکروکنترلر مراجعه کن برای اینکه ببینی آیا دستور RESET جزو دستورات اسمبلی هست یا نه!
در کامپایلر MPLAB C18 این دستور به صورت تابع C هم موجوده: ;()Reset
سلام دوست عزیز
اگر به صورت مختصر قصدتون از ریست کردن رو بیان کنید احتمالا مناسبترین روشها توسط دوستان ارائه خواهد شد . :nerd:
اگر قصدتون از ریست فقط صفر کردن تمامی متغیرهای موجود در RAM باشه در کامپایلری که شما کار می کنید دستور کارآمد دیگری هست که جزو دستورات کاربردی بیسیک هست البته بعد از این دستور هم میتونید با کمک دستورات پرشی به ابتدای برنامه برید تا یک ریست کامل داشته باشید .
دستور CLEAR بدون هیچ ملزوماتی و به همین سادگی مقدار تمامی متغییرها رو در ثباتهای رم میکروکنترلر صفر میکنه.
در کتاب میکروکنترلر پیک نوشته دکتر ستار میرزا کوچکی این طور ذکر شده که با ریست شدن لحظه ای میکرو ، حافظه RAM میکروکنترلر پاک نمیشه و خاصیت اصلی این دستور در همین جا مشخص میشه ، که البته توضیح زیادی داده نشده .
صحت و چگونگی این دستور از طریق مطالعه برگه اطلاعات مربوط به میکروکنترلری که با اون کار میکنید قابل تحقیق هست.
موفق باشید .
موفقیت یک فرایند است نه یک اتفاق...
******** استفاده از گزینه تشکر نشانه اهمیت و احترام شما به پیگیری شخص نظر دهنده است ********
با عرض سلام
ببخشید من هنوز تصور درستی از ریست کردن ندارم خواستم بدون با ریست کردن "آیا برنامه دوباره از خط اول شروع میشه؟ یا نه؟ " ریست کار دیگری انجام میده.
سلام
با عمل ریست اتفاقات زیادی ممکنه رخ بده که بستگی به طراحی قطعه یا سیستم مورد نظر داره یکیش از اول شروع شدن برنامه هست...
در بیشتر میکروکنترلرها معمولا مقدار ثبات شمارنده برنامه صفر میشه یا به مقدار از پیش تعیین شده برمیگرده ، همینطور تمامی محتوایram صفر میشه و این به معنی صفر شدن حاصل تمامی عملیات و متغیرهایی که در رم قرار دارند هست .
البته ریست منابع زیادی داره که معمولا نوع سخت افزاریش مورد توجه هست ،نوع دیگه هم P.O.R هست به معنای ریست در هنگام وصل شدن تغذیه هست. درمواردی هم تفاوتهایی موجوده به طور مثال با ریست سخت افزاری توسط پایه ریست خارجی در برخی سری های میکروکنترلر حافظه RAM پاک نمیشه .
این موضوع حتی در نرم افزار پروتئوس هم لحاظ شده . به این ترتیب که اگر تو شماتیک کلید ریست رو متصل کنید و به هنگام شبیه سازی روی کلید ریست کلیک کنید میکروکنترلر ریست میشه و لی مثلا حاصل اعمال ریاضی و ... در RAM تغییر نمیکنه . تنها P.O.R هست که عملکرد کامل ریست رو خواهد داشت که با متوقف کردن شبیه سازی اتفاق میافته .( به خاطر ندارم کدوم میکرو کنترلر بود).
با ارزوی موفقیت. :agree:
موفقیت یک فرایند است نه یک اتفاق...
******** استفاده از گزینه تشکر نشانه اهمیت و احترام شما به پیگیری شخص نظر دهنده است ********
دیدگاه