ما هي المقاطعة التي ستربطها من DOS للحصول على ساعة الوقت الفعلي؟

StackOverflow https://stackoverflow.com/questions/83728

  •  01-07-2019
  •  | 
  •  

سؤال

ما هي المقاطعة التي يمكنك ربطها من DOS للحصول على ساعة الوقت الفعلي؟

هل كانت مفيدة؟

المحلول

لا يمكن لساعة الوقت الفعلي إنشاء مقاطعات.لقد كان (وربما لا يزال كذلك) مقترنًا بذاكرة الوصول العشوائي cmos لأنه تم تخزينه مؤقتًا بواسطة البطارية.لا يمكن الوصول إليه إلا عبر المنافذ 0x70 و0x71.

ومع ذلك، يمكنك ربط مقاطعة PIT (مؤقت المقاطعة القابل للبرمجة).هذه المقاطعة 0x08 (على سبيل المثال.الأجهزة IRQ0).بقدر ما أتذكر، تم تكوين المقاطعة بواسطة dos ليتم استدعاؤها حوالي 27 مرة في الثانية.يمكنك برمجته على ترددات أخرى أيضًا ولكن ذلك سيؤدي إلى إفساد ساعة dos قليلاً (المنفذ 0x40 و 0x43).

نصائح أخرى

http://www.control.com/thread/1026238869 لديه بعض المعلومات حول هذا.الخطاف int 08h (لا تنس إعادة إرساله)؛وهذا ما يسمى كل 55 ميلي ثانية.

إقرأ على إنتل 8259 عائلة وحدات التحكم بالمقاطعة القابلة للبرمجة.ووفقا لهذا، فهي المقاطعات 8 (الرئيسية) و 112 (التابعة).فيما يلي مستند تقني للغاية حول 8259A: http://pdos.csail.mit.edu/6.828/2008/readings/hardware/8259A.pdf

فيما يلي قائمة كاملة بهم، ولست متأكدًا مما تبحث عنه بالضبط.http://www.htl-steyr.ac.at/~morg/pcinfo/hardware/interrupts/inte2dm8.htm

من:http://www.htl-steyr.ac.at/~morg/pcinfo/hardware/interrupts/inte1at0.htm

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top