سؤال حول "من حديث" في PicBasic برو

G

Guest

Guest
الصفحة الرئيسية : http://www.microengineeringlabs.com/resources/pbpmanual/
أدناه : http://www.microengineeringlabs.com/resources/pbpmanual/5_42-5_47.htm # 544

الرمز :

على تقاطعغوتو علامة على تقاطععلى تقاطع يتيح معالجة انقطاع microcontroller بها روتين ثانوي PICBASIC للمحترفين.يوجد 2 طرق للتعامل مع انقطاع استخدام PICBASIC تجميع للمحترفين.
الأول هو أن يكتب بلغة التجمع يقاطع روتينية.
هذه هي الطريقة للتعامل مع انقطاع أقصر الكمون وأقل في سماء المنطقة.
هذه الطريقة التي نوقشت في إطار المواضيع المتقدمة في وقت لاحق من هذا الباب.الطريقة الثانية لكتابة PICBASIC يقاطع مناول للمحترفين.
هذا يبدو وكأنه روتين ثانوي PICBASIC للمحترفين لكنه ينتهي مع استئناف.عندما يحدث انقطاع ، فمن يهن.
في أقرب وقت الحالي PICBASIC بيان للمحترفين = ق التنفيذ الكامل ، ويقفز إلى البرنامج الأساسي في تقاطع مناولة علامة.
بمجرد أن يقاطع المعالج كاملة ، واستئناف بيان يرسل البرنامج إلى ما كان عليه عند تقاطع حدث التقاط النقطة التي توقفت عندها.تعطيل وتمكين أقسام مختلفة تسمح للPICBASIC للمحترفين لتنفيذ البرنامج من دون امكان يجري انقطاع.
أبرز لتعطيل حق في استخدام الفعلي قبل انقطاع المعالج.
أو قد يقاطع المعالج قبل أن توضع على البيان كما يقاطع يقاطع العلم ليس قبل التأكد أولا على تقاطع في البرنامج.الكمون هو الوقت الذي تستغرقه من وقت الفعلي لانقطاع الوقت الذي يقاطع المعالج هو دخل.
منذ احترافي PICBASIC التصريحات ليست إعادة الوافدة (أي لا يمكن تنفيذ بيان آخر PICBASIC للمحترفين في حين يتم تنفيذ واحد) ، لا يمكن أن يكون هناك قدر كبير من الكمون قبل انقطاع دخل الروتين.PBP لن يدخل الأساسية يقاطع المعالج حتى الانتهاء من التنفيذ حاليا.
اذا كان البيان هو بوقفة أو SERIN ، قد يكون الامر بعض الوقت قبل أن يقاطع من المسلم به.
هذا البرنامج يجب أن تصمم هذه الكمون في الاعتبار.
إذا كان ذلك غير مقبول ويجب ان تكون انقطاع بسرعة أكبر ، وجمعية اللغة يقاطع يجب استخدام الروتيني.مسألة أخرى عامة.
على تقاطع ستضيف تعليمات بعد كل بيان للتأكد من وجود أو عدم وحدث انقطاع.
تعطيل بأطفاء إضافة هذه التعليمات.
يتيح للتحول إعادتها مرة أخرى.
وعادة ما يكون على تعليمات إضافية لن يكون كبيرا من المشكلة ، ولكن طويلة البرامج الصغيرة يمكن أن يعاني microcontrollers.أكثر من واحد على تقاطع يمكن استخدامها في البرنامج.على تقاطع غوتو ميينت 'قاطع المعالج هو ميينت

INTCON = ٪ 10010000 'تمكين RB0 تقاطع.
.
.تعطيل 'تعطيل انقطاع في مناول

ميينت : قاد = 1 'تشغيل عندما قاده انقطاع

استئناف 'الرجوع إلى البرنامج الرئيسي

يتيح 'تمكين المعالج بعد انقطاعإطفاء انقطاع دائم (أو حتى حاجة ثانية) مرة واحدة على تقاطع استخدمت ، INTCON المجموعة إلى 80 دولارا :INTCON = 80 دولارا
 
مرحبا

تمكن وتستخدم لتعطيل PICBasic يقاطع برو وتمكن من تعطيل التوالي...

فقط لنعلمك أنه PICBasic برو يدعم انقطاع في طريقة مختلفة من التجميع ، ويضيف رمز خاص لانقطاع ، وذلك عند استخدام تعطيل ذلك ، ببساطة
، لا يحكي مجمع لوضع مدونة مخصصة لمعالجة انقطاع ، حتى عندما كنت في انقطاع خدمة روتينية ، تخدم تقاطع ، عليك أن تستخدم لتعطيل ومنع أي انقطاع من incomming خربطة روتينية
، يجب عليك استخدام تمكين مباشرة بعد استئناف القيادة لتجنب عرقلة استئناف القيادة أيضا ، حيث أن هذه القيادة لا إلا العودة من تقاطع روتينية ، ولكن أيضا يجعل GIE مرتفعة بعض الشيء ، لذلك هو أن هناك مشكلة اذا كنت تعتقد أنك يمكن أن تستأنف قبل أن تتمكن القيادة ، كما كنت قد تستخدم بعد استئناف تمكين القيادة للسماح للمجمع أن يقاطع لوضع مدونة لقواعد التعامل بعد فإن استئناف مباشرة ، وليس قبل ذلك...

حظ سعيد

 
شكرا...

ولكن هذا النوع من البرمجة لغة متعاقبة على التوالي ، ، ، يعني تشغيل tht 'sسطرا سطرا...

بعد "استئناف" القيادة ، والعودة الى البرنامج الرئيسي لهذا البرنامج ، ، ،
، هو تمكينها من الحصول على أعدم؟...

tht سؤالي هو....في الواقع لقد تعلم هذه اللغة pisbasic المؤيد....أنا NOOB...

شكرا لك

تحياتي ،
س

 
مرحبا

تمكين وتعطيل لا تنفذ ، وكما قلت لكم من قبل --> وهي الأوامر التي نعلم الحاسوب عن مكان لوضع وليس فيها لوضع مدونة لقواعد التعامل مع iterrupt إذا كنت أقرأ في صفحات الماضي دليل قاطع بشأن القضايا اعتقد جميع المشاكل سوف تلتئم...

هذه هي الأوامر للمجمع في الفعل ، وليس للموافقة المسبقة عن علم لsequentioally تنفيذها حسب رأيك ، في الخلفية ، وأنها مجرد شكل من أشكال منع مجمع وضع هذا القانون يمكن الموافقة المسبقة عن علم لكشف ما إذا كان هناك أي تقاطع أو لا ، وذلك عندما تعطيل الحاسوب وجدت ، لمجرد الموافقة المسبقة عن علم لتعطيل قدرة لخدمة انقطاع.

ننظر ماذا سيحدث لو وضعت أمام تمكين السيرة الذاتية :

ولنفترض أن تنفيذ وصل إلى درجة أنها لن تعدم استئناف القيادة ، في هذه اللحظة وهو يقاطع ocuured ، ما يحدث في الواقع هو ان تعود الى بداية من تقاطع دائرة الروتينية "ISR" ، لأنك استخدمت تمكين القيادة قبل أن تستأنف القيادة لديك enbled فإن انقطاع في الفعل قبل استئناف القيادة ،
مما أدى إلى حلقة لا نهاية ممكنة للISR التنفيذ دون أن يعرفوا لماذا... وكما تعلمون ، على سبيل 3 ľSeconds تنفيذ تستأنف القيادة ، وأعتقد أن هذا ومن absoltely كافية لجعل الموافقة المسبقة عن علم البعيد في حلقة لا نهاية لها في حال انقطاع النفس ، أو لآخر ينتظر انقطاع للخدمة.

حظ سعيد

 
وسوف تمكن "أعدموا" أن يكون "أعدموا" ليس من حق الطويل.كما قال والمعادن ، ما هي الا لمجمع PicBasic يدل على أن يقاطع روتين ثانوي الفعلية قد انتهت.كنت _have_ ضعها بعد استئناف القيادة.

 
okok ، شكرا معدنية لشرح التفاصيل...أفهم الآن...

بفضل الطنانة كذلك....

كالعادة...ط hav كثير السؤال...http://www.microengineeringlabs.com/resources/pbpmanual/5_4-5_6.htm # 56
الرمز :زرزر رقم التعريف الشخصي ، ويسقط ، والتأخر ، وقيم ، BVar ، والعمل ، وعلامةقراءة رقم التعريف الشخصي ويقوم اختياريا debounce والسيارات تكرار.
دبوس تلقائيا قدم مدخلا.
دبوس قد يكون ثابتا ، 0-15 ، أو متغير يحتوي على عدد 0-15 (مثل B0) أو دبوس اسم (على سبيل المثال PORTA.0).

-------------------------------------------------- ----------------------------------

أسفل : دولة عندما يعلقون الضغط على زر (0.. 1).التأخير : دورة احصاء السيارات قبل بدء تكرار (0.. 255).
0 إذا لم debounce السيارات أو تكرار أداء.
إذا كان 255 ، debounce ، ولكن لم السيارات أكرر ، تتم.معدل : معدل تكرار التلقائي (0.. 255).BVar : بايت الحجم المتغير يستخدم داخليا لتأخير / تكرار العد التنازلي.
يجب أن تتم تهيئة إلى 0 قبل استخدامها وعدم استخدامها في أي مكان آخر في البرنامج.العمل : دولة للعمل على زر (0 لم يكن لضغوط ، وإذا ضغطت 1).العلامة : تستأنف في تنفيذ هذه العلامة إذا كان العمل هو الصحيح.

-------------------------------------------------- ----------------------------------على سبيل المثال :

'غوتو notpressed إذا لم تضغط على زر PIN2

زر PORTB.2 ، 0،100،10 ، B2 ، 0 ، notpressedزر بضرورة استخدام داخل السيارات لحلقة تكرار للعمل بشكل صحيح.زر debounce يحقق بتأخير تنفيذ البرنامج لفترة من الألف إلى الانتظار للاتصالات لتسوية.
ةيضارتفلاا debounce التأخير 10ms.
لتغيير القيمة debounce إلى أخرى ، وتحديد استخدام :> مجموعة زر debounce تأخير 50msحدد BUTTON_PAUSE 50مما لا شك فيه أن BUTTON_PAUSE هو الأعلى في كل حالة.بشكل عام ، فإنه من السهل قراءة مجرد حالة من دبوس في المتكامل.. ثم من استخدام زر للقيادة على النحو التالي :إذا PORTB.2 = 1 ثم notpressedعلى سبيل المثال البرنامج :تشمل "modedefs.bas" تضمين المسلسل وسائط

لذلك الاشتراكات 0 'تحديد انتاج المسلسل دبوس

2 الاشتراكات Bpin 'زر تحديد المدخلات دبوس

B0 فار بايتB0 = 0 'صفر زر العمل عازلةالحلقة : Bpin زر ، 1،10،5 ، B0 ، 0 ، notp 'راجع زر (إن لم يكن تجاوز ضغط)

Serout ذلك ، N2400 ، [ "الصحافة" ، 13،10] 'يرجى الضغط على زرnotp : Serout ذلك ، N2400 [# B0 ، 13،10] 'عرض العمل المتغيرةوقفة 100 'انتظر قليلا

غوتو حلقة 'هل لأنه إلى الأبد

 

Welcome to EDABoard.com

Sponsor

Back
Top