با سلام و خسته نباشی خدمت تمامی دوستان عزیز غرض از مزاحمت این بود که چندین سوال داشتم که امیدوارم مرا یاری رسانید
بنده روی یک پروژه که با BACOM هست دارم کار میکنم که در آن ک سری حلقه ها برای اجرای برنامه توسط برنامه بیسکام نوشتم که پس از کامپایل کردن و و اجرای آن در برنامه شبیه ساز پروتئوس به خوبی کار میکند
حالا اگه من پنج پایه(پورت)از میکرو را برای موارد وقفه استفاده کنم که به این صورت اگه هر کدام از این پورتها را در زمانهای نامشخص یک کنیم و بواسطه یک شدن هر کدام از این پورتها یک سری حلقه ها مختص همان پورتی که یک شده اجرا شود و در صورت صفر شدن آن پورت برنامه به حالت عادی و اجرای حلقه اصلی بپردازد اولا ما چه ATMEAGA احتیاج داریم که این تعداد وقفه را ساپورت کند ثانیا برنامه به زبان بیسکام به چه صورتی نوشته می شود با این تعداد وقفه ثالثا اگه یکی از پورتهایی که به وقفه خارجی اختصاص داده ایم دائما صفر و یک شود (چیزی مثل لامپ راهنای اتومبیل )و در این صورت ما بخواهیم یک حلقه را اجرا کند که ممدت اجرای این حلقه بیش از مدت زمانی است که این پورت یک می شود آنگاه برنامه ی آن به چه صورتی است
اینو هم بگم بنده از میکرو ATMEGA و بیسکام چیز زیادی نمیدونم ولی اگه میتونید دوستان مرا یاری رسانید حتی در حد تخصصی با سپاس
دوست عزیز متشکرم از پاسخ شما ولی مثل اینکه من مسئله رو بد طرح کردم
یک برنامه بطور عادی در حالت اجرا است و در این موقع یک پورت یک میشود و برنامه باید از حلقهی اصلی خارج شود و حلقه جدیدی که مختص یک شدن همان پورت است اجرا شود و تا صفر شدن همان پورت این حلقه ی جدید تکرار شود . حال اگر به جای یک پورت ما چندین پورت مثلا پنج تا از این پورتها را به این کار اختصاص دهیم که در هنگام یک شدن هر کدام از این پورتها برنامه از مسیر اصلی خود خارج شده و حلقه ی جدیدی را اجرا کند و دائما آنرا تا صفر شدن این پورتها تکرار کند و در صورت صفر شدن این پورتها به حلقه ی اصلی برنامه برگردد. لازم به ذکر است ما باید برای هر کدام از این پنج پورت یک حلقه بنویسیم که در صورتی که هریک از این پورتها فعال شد حلقه ی مربوط به آن پورت را اجرا کند و اگر یکی از پورتها یی که در یک زمان نا مشخص یک میشود نسبت به دیگر پورتها ارجحیت داشته باشد حلقه ی مربوط به آن پورت را ارجح بداند و آنرا اجرا کند
بنده روی یک پروژه که با BACOM هست دارم کار میکنم که در آن ک سری حلقه ها برای اجرای برنامه توسط برنامه بیسکام نوشتم که پس از کامپایل کردن و و اجرای آن در برنامه شبیه ساز پروتئوس به خوبی کار میکند
حالا اگه من پنج پایه(پورت)از میکرو را برای موارد وقفه استفاده کنم که به این صورت اگه هر کدام از این پورتها را در زمانهای نامشخص یک کنیم و بواسطه یک شدن هر کدام از این پورتها یک سری حلقه ها مختص همان پورتی که یک شده اجرا شود و در صورت صفر شدن آن پورت برنامه به حالت عادی و اجرای حلقه اصلی بپردازد اولا ما چه ATMEAGA احتیاج داریم که این تعداد وقفه را ساپورت کند ثانیا برنامه به زبان بیسکام به چه صورتی نوشته می شود با این تعداد وقفه ثالثا اگه یکی از پورتهایی که به وقفه خارجی اختصاص داده ایم دائما صفر و یک شود (چیزی مثل لامپ راهنای اتومبیل )و در این صورت ما بخواهیم یک حلقه را اجرا کند که ممدت اجرای این حلقه بیش از مدت زمانی است که این پورت یک می شود آنگاه برنامه ی آن به چه صورتی است
اینو هم بگم بنده از میکرو ATMEGA و بیسکام چیز زیادی نمیدونم ولی اگه میتونید دوستان مرا یاری رسانید حتی در حد تخصصی با سپاس
دوست عزیز متشکرم از پاسخ شما ولی مثل اینکه من مسئله رو بد طرح کردم
یک برنامه بطور عادی در حالت اجرا است و در این موقع یک پورت یک میشود و برنامه باید از حلقهی اصلی خارج شود و حلقه جدیدی که مختص یک شدن همان پورت است اجرا شود و تا صفر شدن همان پورت این حلقه ی جدید تکرار شود . حال اگر به جای یک پورت ما چندین پورت مثلا پنج تا از این پورتها را به این کار اختصاص دهیم که در هنگام یک شدن هر کدام از این پورتها برنامه از مسیر اصلی خود خارج شده و حلقه ی جدیدی را اجرا کند و دائما آنرا تا صفر شدن این پورتها تکرار کند و در صورت صفر شدن این پورتها به حلقه ی اصلی برنامه برگردد. لازم به ذکر است ما باید برای هر کدام از این پنج پورت یک حلقه بنویسیم که در صورتی که هریک از این پورتها فعال شد حلقه ی مربوط به آن پورت را اجرا کند و اگر یکی از پورتها یی که در یک زمان نا مشخص یک میشود نسبت به دیگر پورتها ارجحیت داشته باشد حلقه ی مربوط به آن پورت را ارجح بداند و آنرا اجرا کند
دیدگاه