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

   

ennng
:: مهندس متميز ::
تاريخ التسجيل: Jul 2010
المشاركات: 453
نشاط [ ennng ]
قوة السمعة:
قديم 06-11-2011, 11:19 PM المشاركة 17   
Thumbs up الحل!!!



السلام عليكم

هذا موقع رائع وجميل لحل مشكلتنا وهو الاتصال بين 2 ميكروكنترولر عن طريق الوايرلس طبعا في تجربتنا بدل الوايرلس نستخدم سلك موصل بين الطرفين Tx و Rx
ونطبق على السيميلوشن (البروتيوس)

طبعا الموقع يشرح بالتفصيل الممل وحاط جميع الاكواد وبلغة C ياليت اي احد يحول الكود الي Mikroc ويضع الكود ليستفيد منه الجميع

http://www.pyroelectro.com/tutorials...les/index.html
تحياتي للجميع ودعواتكم لنا

اعلانات

محمد القادري
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2011
المشاركات: 101
نشاط [ محمد القادري ]
قوة السمعة:
قديم 08-11-2011, 06:27 AM المشاركة 18   
افتراضي


السلام عليكم

هذا موقع رائع وجميل لحل مشكلتنا وهو الاتصال بين 2 ميكروكنترولر عن طريق الوايرلس طبعا في تجربتنا بدل الوايرلس نستخدم سلك موصل بين الطرفين Tx و Rx
ونطبق على السيميلوشن (البروتيوس)

طبعا الموقع يشرح بالتفصيل الممل وحاط جميع الاكواد وبلغة C ياليت اي احد يحول الكود الي Mikroc ويضع الكود ليستفيد منه الجميع

http://www.pyroelectro.com/tutorials...les/index.html
تحياتي للجميع ودعواتكم لنا
جزاك الله خير اخي الكريم... دمت بود

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

Ahmedarblog
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2004
المشاركات: 52
نشاط [ Ahmedarblog ]
قوة السمعة:
قديم 29-11-2011, 02:21 AM المشاركة 19   
افتراضي


السلام عليكم ورحمة الله وبركاتة
هذه طريقة سهله وبسيطة جدا استخدمت فيها خاصية المقاطعة الحاصلة بسبب استقبال بيانات عن طريق UART طبعا الطريقة سهله ومافيهاش اي تعقيد انا عملت ربط بين 2 مايكروكنترول وعندما اضغط على البوتن الاول يرسل حرف A وعندما البيك الثاني يستقبل نفس الحرف يضئ الليد اشتغل تمام ولله الحمد و لكن البوتن الثاني يرسل حرف B لايتم اضاءة الليد الاخر رغم اني اتاكدت من الحرف انه ارسل ياليت نثري هذا الموضوع ونعدل عليه لانه سهل التطبيق وسهل البرمجة

الارسال:
كود:
void main() {
    cmcon=0x07;
  TRISA = 0b00000011; 
  porta=0;
  TRISB.f2 = 0; TRISB.f1 = 1;
  portb=0;
 UART1_Init(9600);
  while(1)
  { if(PORTA.f0 == 1 )
  {
  uart1_write( 'A');
 while(PORTA.f0);
    }
     if(PORTA.f1 == 1 )
  {
  uart1_write( 'B');
  while(PORTA.f1);
    }
      }

}
الاستقبال:
كود:
char x;
void interrupt()
{ int y;


if(uart1_data_ready()){x=uart1_read();

if(x=='A')   {
  for(y=0;y<5;y++){
porta.f1=1;delay_ms(500);porta.f1=0;delay_ms(500);}}
 if(x=='B'){
 for(y=0;y<5;y++){
porta.f2=1;delay_ms(500);porta.f2=0;delay_ms(500)
  }
}   }
pir1.f5=0;
return;
}  }

void main()
{
cmcon=0x07;
trisa=0;
triseb.f4=0;triseb.f5=0;
TRISB.f2 = 0; TRISB.f1 = 1;
INTCON.f7=1;INTCON.F6=1;
PIE1.f5=1;
Uart1_Init(9600);

}
اعتقد هناك مشكلة في التهجئة PIE1.f5

وحاول تضع متغير اخر غير y في for الثانية


ennng
:: مهندس متميز ::
تاريخ التسجيل: Jul 2010
المشاركات: 453
نشاط [ ennng ]
قوة السمعة:
قديم 30-11-2011, 11:44 PM المشاركة 20   
Thumbs up OK


هلا اخي احمد وجزاك الله خير على ملاحظاتك القيمة
بالفعل غيرت المتغير y للفور for الثاني ووضعت متغير اخر اسميته w واشتغلت الدائرة 100% عند الضغط على الزر الاول يرسل حرف A ويضئ الليد الاخضر 5 مرات بحسب قيمة الفور وعند الضغط على الزر الثاني يرسل الحرف B و يضي الليد الاصفر
نعم استطعنا الربط بين متحكمين وبطريقة سهلة وبسيطة فارجوا الاستفادة والتوفيق للجميع





Ahmedarblog
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2004
المشاركات: 52
نشاط [ Ahmedarblog ]
قوة السمعة:
قديم 01-12-2011, 03:37 AM المشاركة 21   
Thumbs up


هلا اخي احمد وجزاك الله خير على ملاحظاتك القيمة
بالفعل غيرت المتغير y للفور for الثاني ووضعت متغير اخر اسميته w واشتغلت الدائرة 100% عند الضغط على الزر الاول يرسل حرف A ويضئ الليد الاخضر 5 مرات بحسب قيمة الفور وعند الضغط على الزر الثاني يرسل الحرف B و يضي الليد الاصفر
نعم استطعنا الربط بين متحكمين وبطريقة سهلة وبسيطة فارجوا الاستفادة والتوفيق للجميع



اتمنى لك التوفيق اخي فكرة جميلة الربط بين الميكرو بهذا النظام وممكن ان تجعل المتغير y كما هو لكن لابد من تصفيرة قبل بداية كل for اي تكتب y=0

لكن بالنسبة لموضوع التهجئة في الرد الاول هل له علاقة ... سامحني فانا لااعلم كثيرا عن الميكرو سي


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


بالنسبة للتهجئة فهي صحيحة ولم اغير فيها شئ فقط غيرت
المتغير y ووضعت w في اللوب الثاني

اتمنى للجميع التوفيق والنجاح في الداريين



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