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

   

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



السلام عليكم
أخي يبدو لي أن الكود يعطي المطلوب منه : تزايد في البداية ثم تناقص ..
وهذا فيديو المحاكاة على real pic simulateur:
http://speedy.sh/pZJZX/sim-freq-1.rar
و بالنسبة لتغيير تردد المحاكاة في بروتوس ستجد في نفس الملف صورة للتوضيح.
من جهة ثانية أظن أن الموجة التي كتبت لها الكود تناسب فقط النصف الموجب للموجة الجيبية ..
خرج المتحكم يكون موجب وليس سالب أخي حيدر عياد..

اعلانات

الصورة الرمزية haidar ayad
haidar ayad
:: مهندس متواجد ::
تاريخ التسجيل: Nov 2011
الدولة: العراق
المشاركات: 178
نشاط [ haidar ayad ]
قوة السمعة:
قديم 30-04-2013, 01:33 PM المشاركة 10   
افتراضي


السلام عليكم
أخي يبدو لي أن الكود يعطي المطلوب منه : تزايد في البداية ثم تناقص ..
وهذا فيديو المحاكاة على real pic simulateur:
http://speedy.sh/pZJZX/sim-freq-1.rar
و بالنسبة لتغيير تردد المحاكاة في بروتوس ستجد في نفس الملف صورة للتوضيح.
من جهة ثانية أظن أن الموجة التي كتبت لها الكود تناسب فقط النصف الموجب للموجة الجيبية ..
خرج المتحكم يكون موجب وليس سالب أخي حيدر أياد..

اخي واستاذي انا تفاجأة بالموجة وبقيت حاير لماذا تخرج صحيحة عندك ولا تخرج عندي ؟!!!
ولكن عندما غيرت التردد و وضعته 8 ميكا بدل 4 ميكا فان الخرج كان صحيح ....فما السبب؟ علما ان الكرستالة التي عندي امتلكها هي 4 ايضا


الشيء الاخر انه لوقت بكتابة اكوادي الاخرى داخل هذا اللوب ، فهل عندما ينفذ البرنامج الاكواد التي ساضيفه أليس هو سيتأخر وبذلك سيتغير شكل الموجة الخارجة من PWM ام لا ؟
اليس كل تعليمة تاخذ ربع تردد الكريستالة ؟ يعني اذا 4 ميكا فبالتالي التعليمة تاخذ دورتها 1 مايكرواثانية ؟


مثال :
كود:
int i,x;
 #define input_voltage      adc_read(0)
void main()


{trisio=0;    ansel=1;
 gpio=0;
  PWM1_Init(5000);
  PWM1_Start();
  loop:

    for( i=11;i<=245;i++)

    { PWM1_Set_Duty(i); }

        for( i=244;i>=12;i--)

    { PWM1_Set_Duty(i); }

   if (input_voltage==509)
   gpio.f5=1;
   else  gpio.f4=0;
       if (input_voltage==332)
   gpio.f4=1;
   else  gpio.f5=0;
  goto loop; }

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

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


1- أخي حيدر أياد
أعدت بناء برنامجك لدي بتردد 8Mhz لان PIC12F638 يتوفر على مذبذب داخلي RC يعمل افتراضيا ب 8Mhz
ولا يحتاج لكريستالة خارجية او مكثفات. وأعتقد ان الدقة كافية.
لكن لو تحب العمل بكريستالة 4 ميغاهرتز خارجية ، ضروري تضبط الاعدادات في كومبيلر الميكروسي من نافذة Project/edit Project.
2- طبعا التعليمات المضافة الى الكود ستجعل البيك يستغرق وقتا أطول في انجاز الحلقة .
3- فعلا أخي كل تعليمة تستغرق ربع التردد لكن ضروري تعرف ان التعليمات المقصودة هي تعليمات الاسمبلي .
فالميكروسي يحول الكود بالسي الى كود بالاسمبلي
وكل تعليمة سي ممكن يكون لها مقابل بالاسمبلي : 2 او 3 او أكثر .


الصورة الرمزية haidar ayad
haidar ayad
:: مهندس متواجد ::
تاريخ التسجيل: Nov 2011
الدولة: العراق
المشاركات: 178
نشاط [ haidar ayad ]
قوة السمعة:
قديم 30-04-2013, 08:10 PM المشاركة 12   
افتراضي


1- أخي حيدر أياد
أعدت بناء برنامجك لدي بتردد 8Mhz لان PIC12F638 يتوفر على مذبذب داخلي RC يعمل افتراضيا ب 8Mhz
ولا يحتاج لكريستالة خارجية او مكثفات. وأعتقد ان الدقة كافية.
لكن لو تحب العمل بكريستالة 4 ميغاهرتز خارجية ، ضروري تضبط الاعدادات في كومبيلر الميكروسي من نافذة Project/edit Project.
2- طبعا التعليمات المضافة الى الكود ستجعل البيك يستغرق وقتا أطول في انجاز الحلقة .
3- فعلا أخي كل تعليمة تستغرق ربع التردد لكن ضروري تعرف ان التعليمات المقصودة هي تعليمات الاسمبلي .
فالميكروسي يحول الكود بالسي الى كود بالاسمبلي
وكل تعليمة سي ممكن يكون لها مقابل بالاسمبلي : 2 او 3 او أكثر .
لك مني اجمل تحية استاذي الكريم ...

لكن لو سمحت ممكن تفهمني اكثر لماذا لم يعمل البك على 4 ميكا ؟
وهل في الواقع لو ضعت كريستالة 4ميكا ايضا لا يعمل ام يجب استبدالها بـ 8 ميكا او اكثر ؟


تقبل تحياتي واحترامي


Tico
:: عضو ذهبي ::
تاريخ التسجيل: May 2012
المشاركات: 1,423
نشاط [ Tico ]
قوة السمعة:
قديم 30-04-2013, 10:01 PM المشاركة 13   
افتراضي


اخي المفروض يعمل ب 4 ميغاهرتز
1- لو ممكن حاول ترفع ملف مشروع الميكروسي حتى أجربه على بروتوس و pic simulator
2- لو تحب تعمل ب 8 ميغاهرتز فلا داعي لكريستالة : كما قلت لك البيك يتوفر على مذبذب داخلي بهذا التردد ولايحتاج كريستالة ولا اية عناصر اضافية.
الملف الذي رفعت لك سابقا مضبوط على هذا التردد و بمذبذب داخلي وبدون إضافة كريستالة:
http://www.gulfup.com/?Rdc4t4


الصورة الرمزية haidar ayad
haidar ayad
:: مهندس متواجد ::
تاريخ التسجيل: Nov 2011
الدولة: العراق
المشاركات: 178
نشاط [ haidar ayad ]
قوة السمعة:
قديم 01-05-2013, 08:47 PM المشاركة 14   
افتراضي


السلام عليكم
عن رسول الله صلى الله عليه واله وسلم:

"إذا مات ابن آدم انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له" .



فهمتك استاذي واخي الغالي ، يعني الان اكتب في دالة الـ main() بدل الكرستالة والمتسعتان ال22بيكوا التالي :

OSCCON = 0b01110000; // 8mhz internal oscillator
صحيح؟
سؤال :
هل هناك قيمة اعلى من ال8 ميكا يتحملها ؟ وكيف يتم الضبط؟


التعديل الأخير تم بواسطة : haidar ayad بتاريخ 01-05-2013 الساعة 08:50 PM

Tico
:: عضو ذهبي ::
تاريخ التسجيل: May 2012
المشاركات: 1,423
نشاط [ Tico ]
قوة السمعة:
قديم 02-05-2013, 06:26 PM المشاركة 15   
افتراضي


1-يعني الان اكتب في دالة الـ main() بدل الكرستالة والمتسعتان ال22بيكوا التالي :

OSCCON = 0b01110000; // 8mhz internal oscillator
صحيح؟
2- سؤال :
هل هناك قيمة اعلى من ال8 ميكا يتحملها ؟ وكيف يتم الضبط؟
[/
السلام عليكم 1- أخي الكريم التعليمة صحيحة حسب الداتا شيت لكن في رأيي إضافتها الى الكود ليست ضرورية : المفترض أن كومبيلر الميكروسي ينوب عنك ويختار افتراضيا 8Mhz بمجرد ان تحدد له ذلك في هذه الصفحة:


http://upload.qariya.info/images/qar...bc1f659af1.png
2- لا أخي حيدر ارجع الى الداتا شيت وستجد ان 8 ميغاهرتز هي أقصى تردد ممكن للمذبذب الداخلي ( internal oscillator ) ..
لو تحب قيمة أعلى مثل اي بيك آخر ممكن طبعا ..لكن تحدد للميكروسي (في الصفحة السابقة) نوع المذبذب: (HS Oscillator) وقيمة التردد وطبعا في هذه الحال تضيف متسعتين 22 بيكو وكريستالة للطرفين المخصصين لذلك في البيك.
اذن اختيار مذبذب داخلي ب 8 ميغاهرتز أرحم


الصورة الرمزية haidar ayad
haidar ayad
:: مهندس متواجد ::
تاريخ التسجيل: Nov 2011
الدولة: العراق
المشاركات: 178
نشاط [ haidar ayad ]
قوة السمعة:
قديم 02-05-2013, 06:38 PM المشاركة 16   
افتراضي


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



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