الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

احتاج مساعدة لمشروع بلغة سي C لل AT90S8535

مغلق
بدأه METALDETH في 22 يوليو 2007 · 2 رد · 895 مشاهدة · في الميكروكنترولر (المتحكم) و الدوائر الرقمية و المنطقية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخوتي انا بحاجة لمساعة بموضوع المقاطعة بالمتحكم الصغري

سوف اضع الكود هنا وهو بلغة السي

مهمة هذا البرنامج ان يقوم باظهار امر عند ورود كل طلب مقاطعة

مثلا اضاءة ليد مع تاخير زمني

والمشكلة انه عند ورود طلب مقاطعة اثناء تنفيذ المقاطعه يحتفظ المسجل GIFR بالطلب ويعيد البرنامج الى المقطاعة فور خروج البرنامج منها

وانا اريد الغاء هذه المشلكة اي لا يتم استقبال اي شي اثناء تنفيذ برنامج المقاطعة

هذا هو الكود:

#include <90s8535.h>   
#include <delay.h> 
interrupt [EXT_INT0] void count (void)
{ 
GIMSK=0X00;
PORTA=0X01;
delay_ms(500);
PORTA=0X10; 
GIFR=0X00;
}
void main ()
{
DDRA=0XFF;
GIMSK=0X40;
MCUCR=0X02;
#asm("sei");
while (1)
{ 
GIMSK=0X00;
GIMSK=0X40;
PORTA=0X10;
}
}
#2

واضح انه متحكم AVR انا لم افهم المشكلة بالظبط ،، و لكن تقريبا تحتاج الي قفل المقاطعة Disable Interrupt و تفعيلها ثانيها Enable وحفظ قيمة المسجل GIFR كما تشاء ...

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#3

اخي العزيز المشكلة انه لايمكن تغير محتوى ال GIFR لانه ياخد حالة القطب ويحفظها دوما ولا يمكن الغاء هذه المهمة ولكن استطعت حل هذه المشكلة عن طريق تنفيذ المشروع بدون مقاطعة اي بعمليات دخل وخرج وشكرا لمشاركتك

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…