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

   

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 08-12-2012, 11:32 PM المشاركة 33   
افتراضي



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

اعلانات

ennng
:: مهندس متميز ::
تاريخ التسجيل: Jul 2010
المشاركات: 453
نشاط [ ennng ]
قوة السمعة:
قديم 08-12-2012, 11:39 PM المشاركة 34   
افتراضي


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

شاهد الكود اللي بالاسفل وهو باستخدام التايمر للعد ويعطي نتيجة ثابتة في كل مرة اغير phase الاشارة

كود:
float x;
 float y;

void main() {
 TRISA=1;
 TRISB=0;
 PORTB=0;
 TRISD=0;
 PORTD=0;
 TRISC=0;
 PORTC=0;
   T1CON.T1CKPS1=0;
   T1CON.T1CKPS0=0;
   T1CON=0;
  while(1){
  
 x=ADC_Read(0);
 y=ADC_Read(1);
 
 if(x==0)  {
 while(y>0){ T1CON.TMR1ON=1; }
 T1CON.TMR1ON=0;

  PORTC=TMR1L;
  PORTD=TMR1H;
  }
  }
  }
انا شاك في عملية عرض الناتج فممكن يكون بـ LCD يعطي نتيجة افضل في كل مرة اما نعرضها على البورت لاادري !!!

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

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 08-12-2012, 11:45 PM المشاركة 35   
افتراضي


و الله جميل جدا هذا الكود ....
اعتقد ان المشكلة في تحديد الشرط بقيمة x=0 ...
اعطي الشرط مرونة اكثر مثلا هكذا ...

كود:
if(x>0 && x<5)

يوجد خطأ في تعريف المنفذ A .. لاحظ انك جعلت a1 كخرج و استخدمتها كدخل ...
عرفها هكذا

كود:
trisa=3;


ennng
:: مهندس متميز ::
تاريخ التسجيل: Jul 2010
المشاركات: 453
نشاط [ ennng ]
قوة السمعة:
قديم 09-12-2012, 12:02 AM المشاركة 36   
افتراضي


بارك الله فيك اخي

جربت وغيرت الشرط لكن نفس المشكلة اخي الكريم

اما بالنسبة للبورت A انا جعلتها كلها بمدخل ولااقصد ان البورت a1 كخرج

وكتبتها TRISA=1; واعتقد ان هذا الامر يجعل البورت A كله كمداخل

وغيرته ايضا الي TRISA=0xFF لكن نقس المشكلة.

الله يجزاك خير اخي الكريم


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 09-12-2012, 12:09 AM المشاركة 37   
افتراضي


trisa=1 يجعل البن الاولى فقط كمدخل و البقية مخارج ...
انا عجبني هذا الكود كثيرا ....
ساحاول معه ان شاء الله .. فقط احتاج بعض الوقت ..


ennng
:: مهندس متميز ::
تاريخ التسجيل: Jul 2010
المشاركات: 453
نشاط [ ennng ]
قوة السمعة:
قديم 09-12-2012, 12:16 AM المشاركة 38   
افتراضي


بارك الله فيك اخي على المعلومة لاني كنت اعتقد ان كل البن يعتبر كمدخل

وعلى العموم غيرتها الى TRISA=0xFF

انا في انتظارك اخي المبارك


الصورة الرمزية ibn al islam
ibn al islam
:: عضو فضي ::
تاريخ التسجيل: Sep 2012
الدولة: tunisia
المشاركات: 611
نشاط [ ibn al islam ]
قوة السمعة:
قديم 09-12-2012, 02:44 AM المشاركة 39   
افتراضي


السلام عليكم

موضوع جميل و مفيد بارك الله فيكم

اعتقد ان هذا الكود سوف يعمل فقط تعديل بسيط على كود الاخ حيدر علاج حسن تبقى فقط حالتي signals in opposite phase
signals in phase التى يمكن التفكير فيها و اضافة الكود الخاص بها

ان لم يعطى نتيجه اقلب المداخل x و y حتى يكون التردد in phase advance مع x

و الاخر مع y

x=adc_read(0);
y=adc_read(1);
if(x==0 && y>0) for(i=0;i<1000;i++)
{delay_ms(1);
if(y==0)breake;}
time=i;

I1 in phase advance




I2 in phase advance









.


التعديل الأخير تم بواسطة : ibn al islam بتاريخ 09-12-2012 الساعة 03:16 AM

ennng
:: مهندس متميز ::
تاريخ التسجيل: Jul 2010
المشاركات: 453
نشاط [ ennng ]
قوة السمعة:
قديم 09-12-2012, 01:21 PM المشاركة 40   
افتراضي


بارك الله فيك اخي ibn al islam

لقد قلبت المدخل x,y لكن لم يعطي اي اختلاف

هل عمل معاك اذا عمل ياليت تضع الكود بارك الله فيك اخي الكريم.



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