قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 03-12-2012, 06:26 PM المشاركة 9   
افتراضي



المشكلة في لغة البرمجة ..ز
لغة الاسمبلي هي الوحيدة التي تكون اوامرها بازمان حقيقية ...
وهناك اساليب متقدمة في الميكروسي مثل ساعة الزمن الحقيقي او Timer zero و هذه لا نعرف استخدامها لحد الان .

اعلانات

ennng
:: مهندس متميز ::
تاريخ التسجيل: Jul 2010
المشاركات: 453
نشاط [ ennng ]
قوة السمعة:
قديم 03-12-2012, 09:26 PM المشاركة 10   
افتراضي


يسعدني مرورك اخ حيدر وبارك الله فيك

الحمد لله توصلت لحل ولكن الغريب في الامر انه يعطيني احيانا قيمة موجبة high في PWM مثل ماهو ظاهر في السهم الاحمر الثاني والثالث (من اليسار) لكن اصلا في هذه الفترة يكون الترانزوستر off اي الخارج من RB0 يكون صفر وبالتالي الليد لايشتغل وهو المطلوب (اي عندما يكون RB0 بواحد او High يشتغل PWM بتردد 2kHz ويكون الترانزستور on و بالتالي الليد يضئ ويطفي وعندما يكون RB0 بصفر او Low لايشتغل PWM والترانزستور off)
البرنامج شغال لكن الغريب هو لماذا يعطي PWM بواحد في بعض المرات واصلا RB0 بصفر.

اخي Tico كيف استطيع معرفة التردد على RB0 هل هناك جهاز في البروتيس ام انك من خلال السلسكوب وضربت في الاسكيل.



الكود:

void main(){
trisb=0;
trisa=0;
PWM1_Init(2000);

//delay_ms(10);
while(1){


portb.f0=1;
//delay_ms(1000);
if(portb.f0==1){
PWM1_Start();
PWM1_Set_Duty(150);
delay_ms(1000);
}
//delay_ms(1000);

portb.f0=0;
//if (portb.f0==0){
PWM1_Stop();
delay_ms(1000);
}
}

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

Tico
:: عضو ذهبي ::
تاريخ التسجيل: May 2012
المشاركات: 1,423
نشاط [ Tico ]
قوة السمعة:
قديم 03-12-2012, 09:40 PM المشاركة 11   
افتراضي


بالنسبة لتحويل المقاومة من الانلج لديجيتل لم افهمها ماذا تقصد.
أخي اعمل كليك يمين على العنصر (المقاومة) تظهر قائمة منسدلة .
افتح edit properties ثم غير نوع المقاومة من Model type
هدفي من التجربة هو ان اضع RB0 ب ON or High لمدة ثانية وفي نفس هذه الفترة يشتغل PWM بتردد اعلى ولنقل 1kHz -10KHz وفي هذه الاثناء سوف يشتغل الليد وينطفي بنفس تردد PWM وبعد ذالك يصبح RB0 ب OFF or Low وكذالك PWM يتوقف وينطفئ الليد تماما لمدة ثانية وهكذا.. ارجوا المساعدة
اخي الكود الذي رفعته يعطي هذه الاشارات :
(الدائرة في الصورة هي الكافئ المنطقي لدائرتك بالترانزيستور)

لكن ممكن تعمل هذا داخل البيك نفسه.. فقط تضيف التعليمات في الميكروسي التي توقف PWM
فقط للاخبار : جربت عمل ذلك بفلوكود بواسطة تعليمة تدعى: PWM_Disable
والكود بلغة السي المكافئ في فلوكود كما يلي:

http://upload.qariya.info/images/qar...a7d86025e8.png
اكيد في الميكروسي ممكن تعمل نفس الشي ..


Tico
:: عضو ذهبي ::
تاريخ التسجيل: May 2012
المشاركات: 1,423
نشاط [ Tico ]
قوة السمعة:
قديم 03-12-2012, 09:44 PM المشاركة 12   
افتراضي


آسف أخي الكريم لم اطلع على ردك فقد كنت مشغولا بكتابة ردي السابق ..
الحمد لله انك توصلت الى الحل ..مقياس التردد موجود في نفس القائمة التي بها الاوسيلو ..
اسمه :
counter timer
وفيه عدة امكانيات ..


ennng
:: مهندس متميز ::
تاريخ التسجيل: Jul 2010
المشاركات: 453
نشاط [ ennng ]
قوة السمعة:
قديم 03-12-2012, 10:22 PM المشاركة 13   
افتراضي


بارك الله فيك اخي الكريم Tico على برنامجك واقتراحك

بالنسبة counter timer وصلته لل RB0 وبالفعل يقرأ 1 ثانية وفواصل بسيطة جدا

فبارك الله لك اخي.

طيب بالنسبة للسهم الاحمر في المشاركة السابقة هل عندك تفسير لها !!!


Tico
:: عضو ذهبي ::
تاريخ التسجيل: May 2012
المشاركات: 1,423
نشاط [ Tico ]
قوة السمعة:
قديم 03-12-2012, 11:03 PM المشاركة 14   
افتراضي


بارك الله فيك اخي الكريم Tico على برنامجك واقتراحك
بالنسبة counter timer وصلته لل RB0 وبالفعل يقرأ 1 ثانية وفواصل بسيطة جدا
فبارك الله لك اخي.
طيب بالنسبة للسهم الاحمر في المشاركة السابقة هل عندك تفسير لها !!!
شكرا أخي على كلماتك الطيبة ..
أبرمج بفلوكود لكنني أحاول المشاركة في ايجاد بعض الحلول للاخوة المبرمجين بلغات أخرى بالوسائل المتاحة: معرفة ببعض أنواع البيك + بقايا اسمبلي () + تسهيلات فلوكود .
بالنسبة لملاحظتك فقد حصل معي نفس الشيء مع الكود بفلوكود الذي ارفقه هنا للاخوة الذين يعملون بفلوكود.
أعتقد ان هذا راجع لبروتوس والتجربة الحقيقية هي الفيصل.


ennng
:: مهندس متميز ::
تاريخ التسجيل: Jul 2010
المشاركات: 453
نشاط [ ennng ]
قوة السمعة:
قديم 03-12-2012, 11:11 PM المشاركة 15   
افتراضي


جزاك الله خير اخي الكريم والله ماقصرت

بالنسبة لقيمة المقاومة في التجربة الحقيقية بتكون صغيرة افضل او كبيرة او على حسب الليد اللي عندي لانه اللي اعرفه ان البيك بيعطي 25mA كتيار خرج


Tico
:: عضو ذهبي ::
تاريخ التسجيل: May 2012
المشاركات: 1,423
نشاط [ Tico ]
قوة السمعة:
قديم 03-12-2012, 11:40 PM المشاركة 16   
افتراضي


شكرا أخي وبارك الله فيك .
رغم ان طبيعة الاشارات متقطعة مما يجعل زمن الخرج قصير جدا بحيث يمكن تصغير قيمة المقاومة الى النصف تقريبا ، في رأيي الافضل عدم استخدام أقل من 220 اوم .



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 05:30 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)