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

أدوات الموضوع

TIME0
:: مهندس جيد ::
تاريخ التسجيل: Mar 2012
المشاركات: 277
نشاط [ TIME0 ]
قوة السمعة:0
قديم 15-05-2016, 11:38 AM المشاركة 1   
افتراضي pwm pic16f887 مدخل انالوج Twitter FaceBook Google+



اريد لو تكرمتكم مراجعه هذا الكود وهو pwm والتحكم عن طريق مقاومه متغيره
نقلت هذا الكود من متحكم
pic16f877
وعدلت عليه ليعمل على
pic16f788

ولكن ما اشتغل بشكل سليم
ارجو المساعده


unsigned int temp_res;
unsigned char temp_duty;

void main() {

ANSEL = 0x04; // Configure AN2 pin as analog
ANSELH = 0; // Configure other AN pins as digital I/O

C1ON_bit = 0; // Disable comparators
C2ON_bit = 0;

TRISA = 0xFF; // Set PORTA as an input
TRISC = 0; // Set PORTC as an Output
PORTC = 0;
TRISB = 0;
PORTB = 0;

// Initialize and start the PWM unit
PWM1_Init(5000);
PWM1_Start();


while(1){
temp_res = Adc_Read(2);

temp_duty = (temp_res/4); // Convert the 10 bit value
// to 8 bits

PWM1_set_Duty(temp_duty); // Set the duty value
Delay_ms(50); // Slow everything down a little


}
}

اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 15-05-2016, 02:01 PM المشاركة 2   
افتراضي


اخي الرجاء كتابة رقم البك بشكل صحيح فالرقم الذي كتبته غير موجود .
هل تعمل محاكاة للمشروع قبل تنفيذه ام تنفذه مباشرة ؟

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

TIME0
:: مهندس جيد ::
تاريخ التسجيل: Mar 2012
المشاركات: 277
نشاط [ TIME0 ]
قوة السمعة:0
قديم 15-05-2016, 07:10 PM المشاركة 3   
افتراضي





كنت اعمل محاكاه في السابق في بدايه الامر مع المتحكم pic16f877
والان مضطر انجز المشروع مع هذا المتحكم
pic16f887
ومش عارف اين الخطا البسيط الصغير


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 15-05-2016, 07:55 PM المشاركة 4   
افتراضي


الرقم الذي ذكرته 788 .
ارفع ملف الكود و المحاكاة من فضلك

حيدر علاج حسن

TIME0
:: مهندس جيد ::
تاريخ التسجيل: Mar 2012
المشاركات: 277
نشاط [ TIME0 ]
قوة السمعة:0
قديم 15-05-2016, 08:38 PM المشاركة 5   
افتراضي


محاكاه ماعندي

الكود موجود هل من طريقة سهله لرفع الكود

انا عملت كبي وبيست في المشاركه الاولى اعتقد الخطا في الكود
ANSEL = 0x04;
ANSELH = 0;
C1ON_bit = 0;

او
temp_duty = (temp_res/4);


ahmed idris
:: مهندس متميز ::
تاريخ التسجيل: Jul 2015
المشاركات: 453
نشاط [ ahmed idris ]
قوة السمعة:0
قديم 15-05-2016, 10:05 PM المشاركة 6   
افتراضي


محاكاه ماعندي

الكود موجود هل من طريقة سهله لرفع الكود

انا عملت كبي وبيست في المشاركه الاولى اعتقد الخطا في الكود
ANSEL = 0x04;
ANSELH = 0;
C1ON_bit = 0;

او
temp_duty = (temp_res/4);
التعليمات التي تشك فيها سليمة وضرورية
والكود الذي ارفقت في بداية موضوعك سليم كله ولايوجد به اي خطأ ..


محمد القادري
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2011
المشاركات: 101
نشاط [ محمد القادري ]
قوة السمعة:0
قديم 16-05-2016, 07:52 AM المشاركة 7   
افتراضي


السلام عليكم

اخي انا جربت البرنامج الذي وضعته ... وعمل بشكل سليم ...


ahmed idris
:: مهندس متميز ::
تاريخ التسجيل: Jul 2015
المشاركات: 453
نشاط [ ahmed idris ]
قوة السمعة:0
قديم 16-05-2016, 08:35 AM المشاركة 8   
افتراضي


1- الكود سليم وهذا عمله:
المقاومة المتغيرة تزيد أو تنقص في عرض نبضة التردد الخارج من الرجل للمتحكم:

2- الآن هناك ملاحظة:
في الكود تعليمة تقسم قيمة المتغير بسعة 10 بت على 4 وهذا حتى يكون الناتج على شكل رقم تنائي 8 بت:
temp_duty = (temp_res/4); // Convert the 10 bit value to 8 bits
لماذا هذه التعليمة؟
ربما واضع الكود يريد إظهار ناتج التحويل على البورت B
هو هيأ البورت B ليكون كخرج بالتعليمة ;TRISB=0
لكن ينقصه تعليمة العرض وهي:
;PORTB = temp_duty
ومكانها في الكود يجب أن يكون هنا:
PWM1_set_Duty(temp_duty); // Set the duty value
Delay_ms(50); // Slow everything down a little
;PORTB = temp_duty
مجرد احتمال..

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


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

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025