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

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

sskk77
:: مهندس متميز ::
تاريخ التسجيل: Jan 2005
المشاركات: 714
نشاط [ sskk77 ]
قوة السمعة:0
قديم 10-05-2015, 10:19 AM المشاركة 1   
افتراضي اريد تغيير تردد PWM ميكرو بيسك Twitter FaceBook Google+



السلام عليكم
باستخدام لغة الميكرو بيسك
اريد اسناد قيمة متغيرة لتردد PWM الا ان هذه اللغة لا تقبل ذلك
اريد تغيير تردد النبضات اضافة إلى عرضها
التحكم بعرضها سهل فقط اسناد قيمة متغير إليها
مثال
(PWM1_Set_Duty(BB1
هذه التعليمة ممكنة وهي لتغيير عرض الموجة
لكن
(PWM1_Init(BB1
لا تقبل إلا قيمة ثابتة مثل ( PWM1_Init(20100
استعملت اداة الشرط if فعملت لكنها لا تكفي لعدد الاحتمالات التي اريدها
استنفذت ذاكرة المعالج
اريد وضع buuton عدد 2 لزيادة التردد أو انقاصه

فما الطريقة الأسلم والأسهل لتوليد PWM بتردد متغير
ولكم الشكر والتقدير

اعلانات

Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:80
قديم 10-05-2015, 05:11 PM المشاركة 2   
افتراضي


السلام عليكم
نعم أخي ما ذكرته صحيح :
دالة التهيئة لا تقبل متغير بل يتم تحديد التردد بقيمة عددية ثابتة:

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

sskk77
:: مهندس متميز ::
تاريخ التسجيل: Jan 2005
المشاركات: 714
نشاط [ sskk77 ]
قوة السمعة:0
قديم 10-05-2015, 06:55 PM المشاركة 3   
افتراضي


طيب ما الحل
احتاج لتردد متغير ماذا اصنع
كما ذكرت استخدمت if قد عملت لكنها لا تكفي لما اريد استنفذت ذاكرة المعالج


Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:80
قديم 10-05-2015, 08:33 PM المشاركة 4   
افتراضي


طيب ما الحل
احتاج لتردد متغير ماذا اصنع
كما ذكرت استخدمت if قد عملت لكنها لا تكفي لما اريد استنفذت ذاكرة المعالج
ممكن تصنع PWM خاصة بك :
1- ممكن تصنع تردد أو على الاصح موجة مربعة وتتحكم في زمنيها t_on و t_off بنسب مختلفة.
ممكن تسخر لهذا الغرض متغيرين (+ زمن تأخير ) الأول يحدد لك الزمن الدوري واثاني يحدد لك الزمن T_on
ممكن تستخدم مقاطعات التايمرات في البيك (التايمر 0 والتايمر 1 مثلا) .
هنا مثال عن استخدام مقاطعة التايمر 0 لهذا الغرض:
http://www.qariya.info/vb/showthread.php?t=93244
2- هناك طريقة توليد تردد PWM "يدويا" باستخدام مسجلات المقارنة داخل البيك .. هذا موقع يعتمد تلك الطريقة ويضع لك أمثلة عن الكود ..
هو بالميكروسي لكن المبدأ قد لايختلف في الميكروبيزك :
http://www.micro-examples.com/public...alculator.html
هذه بدائل ممكنة (تتطلب منك إلى دراسة ) أوردتها لك رغم أني في الواقع لم أفهم مشكلتك بالضبط.


sskk77
:: مهندس متميز ::
تاريخ التسجيل: Jan 2005
المشاركات: 714
نشاط [ sskk77 ]
قوة السمعة:0
قديم 11-05-2015, 06:04 AM المشاركة 5   
افتراضي


أخي العزيز كلامك صحيح لكنها لن تصل إلى التردد الذي أريد
أنا اريد استخدام بايت للتردد وبايت لعرض النبضة
يعني 256 احتمال للتردد وحده الأدنى 25KHz وزيادة 100Hz لكل واحد يعني حد اعظمي 50.6KHz جربت باستخدام كرستالة 20 ميغا فلم أحصل على ما اريد
أقصى قيمة وصلت 6.5KHz هذا لأن الكود يستهلك الزمن المطلوب للمهمة
أما المضمنة في المعالج فهي دارة مستقلة لا تحتاج إلى الكود هي تعمل فقط بما تأمر يعني متفرغة تماماً ومستقلة لتلك الغاية وممكن تأخذ منها تردد بالميغا هرتز وهذا لن تحصل عليه بالكود

أرجو أن أجد حلاً مناسباً
ولك فائق الشكر والتقدير


sskk77
:: مهندس متميز ::
تاريخ التسجيل: Jan 2005
المشاركات: 714
نشاط [ sskk77 ]
قوة السمعة:0
قديم 11-05-2015, 08:05 PM المشاركة 6   
افتراضي


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

إضافة رد

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

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

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


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

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