بسم الله الرحمن الرحيم
الاخ العزيز حسن هادي
السلام عليكم
ارجوا مساعدتي في تشغيل الكود الموجود في المرفقات
وهو لتشغيل ستبر ماطور عن طريق pic16f630 وهو لتشغيل محرك واحد
وارجو توضيح ماهو الخطا
المرفقات
|
السلام عليكم
تمت تصحيح الكود
http://up.top4top.net/downloadf-top4...c0cb1-rar.html
==========================================
الاخطاء هي
1- cmcon نجعله 5 بدلا من 7 لانك لو ذهب الى داتا شيت وأختاريت ports لرأيت انه تعريف هذا البورت cmcon=5
2-
يجب تصفير بنات الخاصه بتشغيل محرك قبل أعطاءه نبضه وأيضا يجب وضع هذه علامه | وذلك لغرض الحفاظ على قيمه بتات الي انت لا تستخدمها لمحرك يعني مثلا انا ربطت مع بورت C اول اربعه للمحرك وأخرى لاحمل أخر يجب أستخدام هذه علامه لكي يتم محافظه على قيم بتات الي لا تستخدم مع محرك
كود:
if( state==1)
{
state=0;
portc=(portc &0xF0);
switch(puls1)
{
case 0:portc |=9;break; //0
case 1:portc |=1;break; //-45
case 2:portc |=3;break; //-90
case 3:portc |=2;break; //-135
case 4:portc |=6;break; //-180
case 5:portc |=4;break; //-225
case 6:portc |=12;break;//-270
case 7:portc |=8;break;//-315
default:break;
}
وهذا الامر بلون أحمر ضروري جدا ليتم تصفير الاطراف محرك فقط تلاحظ انه تم عمل له & مع 0XF0 لاننا نريد فقط تصفير اطراف المحرك دون تأثير على بقيه
==============================
3-
يجب ربط السويج puls على طرف الي من خلاله يحصل انتربت وطرف RA2 هو طرف الصحيح
لذا يجب تفعيل أنتربت لكي يعمل تايمر0 و INTE مع جعل حافه النبضه من hi to low
كود:
void InitTimer0(){
TMR0 = 61;
INTCON = 0xA0;
}
كود:
CMCON=5;
InitTimer0();
INTE_bit=1;//1 = Enables the RA2/INT external interrupt
OPTION_REG = 0xC7;
=====================================
3-
انا رأيت في الكود انك جعلت الاطراف 1 و2 للبورت A دخل ولم يتم أستخدامهما وهذا خطأ كبير لانك البيك سيصبح عمله غير مستقر تماما لانه هذه مداخل ان لم يتم تحديها بــ 1 او 0 فالبيك مره يختارها 1 ومره 0 وقد يؤثر هذا سلبا على بقيه البورتات