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

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

الصورة الرمزية ياسين الحانوتي
ياسين الحانوتي
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2013
المشاركات: 164
نشاط [ ياسين الحانوتي ]
قوة السمعة:0
قديم 19-12-2014, 01:30 PM المشاركة 1   
ha استفسار حول الـ pwm Twitter FaceBook Google+



السلام عليكم ورحمة الله

لدي مشكلة حول خاصية الــ pwm عند الــ pic16f877a حيث أنني كتبت الكود التالي بلغة المايكروسي
void main()
{
ADCON1=0X06;

trisb=0xff;
OPTION_REG.B7=0;
PWM1_Init(38000);

PWM1_Set_Duty(128);

//for(;
//{
//if(PORTB.B0==0)
//{
PWM1_Start();
delay_ms(3000);
PWM1_Stop();

}


}

}
وعملت الدارة على البروتس لكنها لم تعمل
المرجو المساعدة

اعلانات

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 19-12-2014, 03:36 PM المشاركة 2   
افتراضي


السلام عليكم ورحمة الله

لدي مشكلة حول خاصية الــ pwm عند الــ pic16f877a حيث أنني كتبت الكود التالي بلغة المايكروسي
void main()
{
ADCON1=0X06;

trisb=0xff;
OPTION_REG.B7=0;
PWM1_Init(38000);

PWM1_Set_Duty(128);

//for(;
//{
//if(PORTB.B0==0)
//{
PWM1_Start();
delay_ms(3000);
PWM1_Stop();

}


}

}
وعملت الدارة على البروتس لكنها لم تعمل
المرجو المساعدة
السلام عليكم ورحمة الله وبركاته

أهلا بك أخي الكريم

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

أو عند عمل مشاركة الضغط على ادراج كود وهو رمز # في لوحة عمل المشاركات الجديدة وعمل محاذاة لليسار ليظهر الكود بشكل واضح


المهم .. بخصوص الكود الذي وضعته فهناك خطأ بسيط وهو أن طرف الميكروكنترولر الخاص بالـ pwm لم تعرفه على أنه خرج
فيجب أن تكتب في بداية الكود
كود:
TRISC.F2=0;
بحيث يتم تهيئة الطرف C2 وهو المسمى CCP1 على انه خرج للميكروكنترولر

جرب واخبرني بالنتيجة

تحياتي

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

الصورة الرمزية ياسين الحانوتي
ياسين الحانوتي
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2013
المشاركات: 164
نشاط [ ياسين الحانوتي ]
قوة السمعة:0
قديم 19-12-2014, 04:27 PM المشاركة 3   
افتراضي


السلام عليكم ورحمة الله

لدي مشكلة حول خاصية الــ pwm عند الــ pic16f877a حيث أنني كتبت الكود التالي بلغة المايكروسي
void main()
{
ADCON1=0X06;

trisb=0xff;
OPTION_REG.B7=0;
PWM1_Init(38000);

PWM1_Set_Duty(128);

//for(;
//{
//if(PORTB.B0==0)
//{
PWM1_Start();
delay_ms(3000);
PWM1_Stop();

}


}

}
وعملت الدارة على البروتس لكنها لم تعمل
المرجو المساعدة
شكرا أخي العزيز على الإفادات
جربت الكود من جديد:
كود:
void main() 
{
trisc.F2=0;


trisb=0xff;
OPTION_REG.B7=0;
 PWM1_Init(38000);

 PWM1_Set_Duty(128);

 //for(;;)
   //{
     //if(PORTB.B0==0)
        //{
          PWM1_Start();
 delay_ms(3000);
  PWM1_Stop();

        }
  

   }
 
}
لكنها لم تعمل

بالظبط عندما أشغل الدارة من المفترض أن يتأرجح الخرج ccp1 بين الصفر والواحد لمدة 3s وبتردد 38kHz لكنه يبقى ثابت في القيمة 0 طول المدة وينتقل بعدها إلى الحالة الثالثةّ.
وشكرا


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 19-12-2014, 05:13 PM المشاركة 4   
افتراضي


الرجاء ارفاق ملفات المشروع وملف المحاكاة

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

أيضا لاحظ أنك لغيت جملة if التي تختبر هل تم الضغط على السويتش أم لا ووضعت اماماها علامة // وبالتالي المفترض أن يعمل الـ pwm باستمرار ولن تلاحظ التوقف لانه داخل جملة for ولا يوجد زمن انتظار بعد الامر pwm1_stop


التعديل الأخير تم بواسطة : ahmad_s_f بتاريخ 19-12-2014 الساعة 05:39 PM

سعد الجسري
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2005
الدولة: UAE
المشاركات: 144
نشاط [ سعد الجسري ]
قوة السمعة:0
قديم 19-12-2014, 07:03 PM المشاركة 5   
افتراضي


السلام عليكم
الاستاذ أحمد اهلا وسهلا

بارك الله فيك
انا من أشد المتابعين لدروسك
والله بحبك في الله


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 20-12-2014, 05:53 AM المشاركة 6   
افتراضي


السلام عليكم
الاستاذ أحمد اهلا وسهلا

بارك الله فيك
انا من أشد المتابعين لدروسك
والله بحبك في الله
وعليكم السلام ورحمة الله وبركاته .. أحبك الله أخي الكريم .. شكرا جزيلا لك


الصورة الرمزية ياسين الحانوتي
ياسين الحانوتي
:: مهندس متواجد ::
تاريخ التسجيل: Dec 2013
المشاركات: 164
نشاط [ ياسين الحانوتي ]
قوة السمعة:0
قديم 20-12-2014, 12:18 PM المشاركة 7   
افتراضي


الرجاء ارفاق ملفات المشروع وملف المحاكاة

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

أيضا لاحظ أنك لغيت جملة if التي تختبر هل تم الضغط على السويتش أم لا ووضعت اماماها علامة // وبالتالي المفترض أن يعمل الـ pwm باستمرار ولن تلاحظ التوقف لانه داخل جملة for ولا يوجد زمن انتظار بعد الامر pwm1_stop
شكرا أخي
جربت الأوسيلوكوب وغيرت اليرنامج كالتالي ومع ذالك لم يعمل ّ
كود:
void main() 
{
trisc.F2=0;
OPTION_REG.B7=0;
 PWM1_Init(38000);
 PWM1_Set_Duty(128);
  PWM1_Start();

}
متأكد أن البرنامج سليم وكذلك التركيب
ممكن أن تكون المشكلة في البروتس؟
(رحاء كيف يمكن إرفاق ملف؟)


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:394
قديم 20-12-2014, 12:45 PM المشاركة 8   
افتراضي


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


إضافة رد

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

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

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


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

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