توی قسمت تعویق وقفه ها مشکل داشتم.مثلا تعویق چیه رو نمیدونستم چیه که فهمید و میشه یه تاخیر زمانی.درسته؟
حالا نمیدونم دلیل این تاخیر زمانی به چه دلیلی اتفاق میفته؟
توی قسمت تعویق وقفه ها مشکل داشتم.مثلا تعویق چیه رو نمیدونستم چیه که فهمید و میشه یه تاخیر زمانی.درسته؟
حالا نمیدونم دلیل این تاخیر زمانی به چه دلیلی اتفاق میفته؟
ممنونم از لطفتون :applause: :wow: :wow: :read:
من هرچی پست شما رو می خونم نمی فهمم
شما ایرانی هستید؟ با دستور زبان فارسی صحبت می کنید؟
شایدم در مد PDU صحبت می کنید؟
آخه عزیزم یکی دو بار قبل از ارسال متن رو بخون ببین مورد نداره بعد ثبتش کن
توی قسمت تعویق وقفه ها مشکل داشتم.مثلا تعویق چیه رو نمیدونستم چیه که فهمید و میشه یه تاخیر زمانی.درسته؟
حالا نمیدونم دلیل این تاخیر زمانی به چه دلیلی اتفاق میفته؟
ممنونم از لطفتون :applause: :wow: :wow: :read:
جلل خالق تا حالا دیگه تعویق وقفه نشنیده بودیم که اون هم شنیدم!!
ببین دوست من وقفه برای این هست که یه تاخیر در برنامه بندازه و بره یه کار دیگه انجام بده بعد برگرده و همون کار قبل رو ادامه بده!
حالا شما میتونی روی اکثر قسمت های میکرو چه سخت افزار چه نرم افزار وقفه ایجاد کنی و بگی تا که این وقفه اومد کارت رو ول کن بیا این کار کن و ...
شما بهتره بری با سری مگا شروع کنی و بعد بچسپی به ارم!!
البته اگه ارم رو یاد بگیری خیلی بهتره ولی اینجوری به مقدار برات سخت تر میشه!!
منظور ایشون احتمالا اولویت بندی وقفه هاست
مثلا توی سری LPC اولویت هر وقفه با رجیستر VICVectPriority مشخص میشه که می تونیم مقداری بین 0 تا 15 بهش بدیم
دلیل اولویت بندی هم اینه که ممکنه بعضی چیزا اهمیتش بیشتر باشه
مثلا اگر تو سیستم شما یک وقفه داری که ساعت رو باهاش تنظیم می کنی و یک وقفه داری که Fault رو بهت اعلام میکنه و هر دو اتفاق بیفته اول شما باید بری Fault رو حلش کنی بعد کارای دیگه وگرنه سیستمت ممکنه بره رو هوا!
بین دوست من وقفه برای این هست که یه تاخیر در برنامه بندازه و بره یه کار دیگه انجام بده بعد برگرده و همون کار قبل رو ادامه بده!
حالا شما میتونی روی اکثر قسمت های میکرو چه سخت افزار چه نرم افزار وقفه ایجاد کنی و بگی تا که این وقفه اومد کارت رو ول کن بیا این کار کن و ...
شما بهتره بری با سری مگا شروع کنی و بعد بچسپی به ارم!!
البته اگه ارم رو یاد بگیری خیلی بهتره ولی اینجوری به مقدار برات سخت تر میشه!!
یکی از بدترین نوع برنامه نویسی ها استفاده مکرر از وقفه هست. وقفه بشدت سرعت کار رو کم میکنه. در حقیقت با هر وقفه یکبار پایلاین پردازنده خالی میشه ( مثلا توی سری کرتکس حدود 13 دستور ) و یکبار هم از ثباتها و ... نمونه برداشته میشه و ... . توی PC معمولی اگر بخوای دیتا رو از هارددیسک با وقفه بخوی حدود 200 برابر سرعت کندتر میشه. استفاده از وقفه باید روی حساب کتاب باشه نه اینکه هرجایی حال کردین یه وقفه بذارید و ... . مثلا توی PC و سیستم عاملی مثل لینوکس، اکثر وقفه ها برای صدا کردن روتینهای سیستم عامل و چند برنامه گی هست و جدای اون هیچ برنامه ای نمی تونه وقفه ایجاد کنه.
یکی از بدترین نوع برنامه نویسی ها استفاده مکرر از وقفه هست. وقفه بشدت سرعت کار رو کم میکنه. در حقیقت با هر وقفه یکبار پایلاین پردازنده خالی میشه ( مثلا توی سری کرتکس حدود 13 دستور ) و یکبار هم از ثباتها و ... نمونه برداشته میشه و ... . توی PC معمولی اگر بخوای دیتا رو از هارددیسک با وقفه بخوی حدود 200 برابر سرعت کندتر میشه. استفاده از وقفه باید روی حساب کتاب باشه نه اینکه هرجایی حال کردین یه وقفه بذارید و ... . مثلا توی PC و سیستم عاملی مثل لینوکس، اکثر وقفه ها برای صدا کردن روتینهای سیستم عامل و چند برنامه گی هست و جدای اون هیچ برنامه ای نمی تونه وقفه ایجاد کنه.
در مورد بافرینگ اطلاعاتی دارید؟
چجوری می شه محتوای یه رجیستر رو که عوض می شه توی یه رجیستر بافر کرد و به صورت دسته ای باهاشون کار کرد؟؟
(مثل عملیات ارسال )
این که تعداد تشکر های اهدایی یه کاربر زیاده به این معنا نیست. که چیزی بلد نیست؛ بلکه نشانه اینه که به تلاش بقیه بچه ها احترام می گذاره
تعویق نمن. اقا ما هم مثل دوستان شاخ درآوردیم همچین چیزی نشنیده بودیم. منظورتون این نیست که بعد از اعمال یک وقفه خارجی با دکمه یا چیزه دیگه بعد از یک زمانی روال وقفه اجرا میشه؟؟؟؟ oo: oo: oo:
دوستان یه سوال:
وقتی من می خوام توی روتین هندلر وقفه، مقدار یه متغیر(مثلا i) رو استفاده کنم و بعد اون رو زیاد کنم. اون وقت اگه نخوام متغیر رو گلوبال تعریف کنم، چیکار کنم؟
اگه بخوام توی خود هندلر متغیر رو تعریف کنم، باید مقدار دهی اولیه داشته باشن و این مسأله دچار مشکل می کنه.
راهی غیر از تعریف گلوبال نیست؟؟
ممنون می شم سریع جوابم رو بدین
این که تعداد تشکر های اهدایی یه کاربر زیاده به این معنا نیست. که چیزی بلد نیست؛ بلکه نشانه اینه که به تلاش بقیه بچه ها احترام می گذاره
یه سوال دیگه هم دارم و اون اینه که می خوام کد های زیر رو پیاده سازی کنم.
کد:
void XX_IRQHandler(void){
if (i<1024){
{send data}
}
i++
راهی در نظر دارید که اگر در بین ارسال داده ها، روتین وقفه مجددا اجرا شد، مشکلی پیش نیاد؟
یعنی نه عملیات وقفه از دست بره و نه ارسال با مشکل روبرو شه؟
حالا اگه ارسال پاوز شه و بعد از پایان وقفه مجدداً ادامه پیدا کنه اشکال نداره!
ممنون
این که تعداد تشکر های اهدایی یه کاربر زیاده به این معنا نیست. که چیزی بلد نیست؛ بلکه نشانه اینه که به تلاش بقیه بچه ها احترام می گذاره
دوستان یه سوال:
وقتی من می خوام توی روتین هندلر وقفه، مقدار یه متغیر(مثلا i) رو استفاده کنم و بعد اون رو زیاد کنم. اون وقت اگه نخوام متغیر رو گلوبال تعریف کنم، چیکار کنم؟
اگه بخوام توی خود هندلر متغیر رو تعریف کنم، باید مقدار دهی اولیه داشته باشن و این مسأله دچار مشکل می کنه.
راهی غیر از تعریف گلوبال نیست؟؟
ممنون می شم سریع جوابم رو بدین
دوستان کسی در مورد این سوال من نظری نداره؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
:redface: :redface: :angry: :angry:
این که تعداد تشکر های اهدایی یه کاربر زیاده به این معنا نیست. که چیزی بلد نیست؛ بلکه نشانه اینه که به تلاش بقیه بچه ها احترام می گذاره
آقا محسن اونوقت برای مقدار دهی اولیه می شه کاری کرد؟
من یه جایی خوندم متغیر های استاتیک فقط یه بار مقداری دهی اولیه می شه درسته؟
متغیر های استاتیک توی استک هستند یا مثل گلوبال ها توی RAM دخیره می شه؟
چون من بحث سرعت برام مطرحه و می خوام سرعت دستیابی بهشون زیاد باشه.
این که تعداد تشکر های اهدایی یه کاربر زیاده به این معنا نیست. که چیزی بلد نیست؛ بلکه نشانه اینه که به تلاش بقیه بچه ها احترام می گذاره
دیدگاه