14-12-2011, 21:03
|
|
|
חבר מתאריך: 20.10.06
הודעות: 202
|
|
איך אפשר לקבל "פסיקה ברגע שמשתנה הטמפרטורה"?
קודם כל, מי אמור לעורר את הפסיקה "ברגע השינוי"? לשם כך תצטרך להשתמש בחיישן "חכם" ובהכרח יקר יותר.. כי חיישן טמפרטורה פשוט, רק מחזיר ערך טמפרטורה כששואלים אותו, והחיישנים הזולים, אפילו לא מחזירים ערך דיגיטלי, אלא רק משנים את מתח המוצא שלהם בהתאם לטמפרטורה הנמדדת, ויש להוסיף ממיר ADC כדי להפוך את המתח לערך בינארי.. והשאלה בכלל עוסקת בתכנות, לא בחומרה.. ;-)
בקשר ללינק שצירפת (Spinlock), לא יודע אם קראת את המידע בלינק, אבל המידע שם מתייחס להשהיה חוסמת שמבוצעת בתוך "תהליכון" (Thread), כלומר מדובר בכלל על מערכת הפעלה התומכת בריבוי-משימות, השואל במקור שאל על מימוש השהיה עבור 8051, ולא ציין שימוש במערכת-הפעלה כלשהי.
בנוסף, אם תקרא את המאמר, תבחין במשפט "Spinlocks are efficient if threads are only likely to be blocked for a short period of time", או במילים אחרות השימוש בשיטה הזו מתאים רק לביצוע השהיות קצרות בקוד ולא לארוכות, וזה בדיוק מה שציינתי בתחילת התשובה שלי ("מומלץ להתרגל ליצור השהיות בעזרת טיימר, בעיקר אם אלו השהיות ארוכות").
זה כיף לרשום הערות על תשובות של אחרים ואין לי בעיה עם זה, אבל נתתי תשובה נכונה ב-100% ואתה מטעה את השואל עם הערות שאינן נכונות..
האמן לי שכתבתי הרבה השהיות, מכל הסוגים ובכל מיני שיטות, ואני מכיר את הנושא היטב.
אגב, בקשר לפסיקות, אולי זה לא היה ברור מספיק בתשובה שלי, אבל כשכתבתי "אם לחילופין ההשהיה תמומש באמצעות פסיקה", התכוונתי לפסיקת טיימר. פשוט מאפשרים את פסיקת הטיימר ואז מגדירים טיימר מתאים שיוצר השהיה באורך הזמן הרצוי. בתוך רוטינת הטיפול בפסיקת הטיימר (ISR) מטפלים בכל מה שדורש טיפול לאחר ההשהיה, וכמובן טוענים מחדש את הטיימר, כך שיתן פסיקה נוספת, לאחר ששוב יחלוף פרק-הזמן של ההשהיה..
בברכה,
דיגיגיל
_____________________________________
_- סיוע בהשלמת פרויקט-גמר להנדסאים -_
(האתר digigil.com נסגר)
|