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

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

mohamed_amine
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2012
المشاركات: 87
نشاط [ mohamed_amine ]
قوة السمعة:0
قديم 13-07-2014, 05:11 PM المشاركة 1   
ha أمثلة Master multi slaves RS485 Twitter FaceBook Google+



السلام "عليكم رمضان مبارك تقبل الله انكم الصيام صالح العمل وجعلكم من المعتقين من نيرانه اخوتي
أود مساعدة في موضوع Master multi slavesأريد أمثلة أو برامج لقد قمت بتشغيل RS485 PIC TO PIC لكن عندما قمت بادخال PIC أخر slave إلا أنه لم ينجح

اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 13-07-2014, 05:25 PM المشاركة 2   
افتراضي


السلام "عليكم رمضان مبارك تقبل الله انكم الصيام صالح العمل وجعلكم من المعتقين من نيرانه اخوتي
أود مساعدة في موضوع Master multi slavesأريد أمثلة أو برامج لقد قمت بتشغيل RS485 PIC TO PIC لكن عندما قمت بادخال PIC أخر slave إلا أنه لم ينجح
السلام عليكم
أخي كريم راجع هذا رابط مشاركه 4
http://www.qariya.info/vb/showthread...651#post885651

بالتوفيق

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

mohamed_amine
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2012
المشاركات: 87
نشاط [ mohamed_amine ]
قوة السمعة:0
قديم 13-07-2014, 05:51 PM المشاركة 3   
افتراضي


السلام عليكم
أخي كريم راجع هذا رابط مشاركه 4
http://www.qariya.info/vb/showthread...651#post885651

بالتوفيق
شكراً اخ هادي هنالك شي يحصل لا أفهمه يشتغل الماستر و- two slaves لمدة 2min بصفة عادية ويقع المحاكاة بعد ذلك الثلاثة بكات لا تشتغل عندما بحثت وجدت أن مشكل overflow stack!!! لانه هنالك كثير من calls هذا كودي 16F876A
كود:
sbit  rs485_rxtx_pin  at RA0_bit;
sbit  rs485_rxtx_pin_direction at TRISA0_bit;


char valeur_RS[8];
void interrupt() {
  RS485Master_Receive(valeur_RS);

}
void main(){
 TRISB5_bit=0;
 TRISB4_bit=0;
 RB5_bit=0;
 RB4_bit=0;

  ADCON1=0;
  CMCON=7;


  UART1_Init(19200);
    Delay_ms(100) ;
  RS485Master_Init();
    Delay_ms(100) ;
  
  valeur_RS[0] = 0;
  valeur_RS[1] = 0;
  valeur_RS[2] = 0;
  valeur_RS[4] = 0;
  valeur_RS[5] = 0;
  valeur_RS[6] = 0;
  valeur_RS[7] = 0;

  RCIE_bit = 1;
  TXIE_bit = 0;
  PEIE_bit = 1;
  GIE_bit = 1;Delay_ms(100) ;
   RB4_bit=1;
   RB5_bit=1;
   Delay_ms(300) ;
   RB4_bit=0;
   RB5_bit=0; while(1){
    Delay_ms(1000);
    RS485Master_Send(valeur_RS,1,160);
    Delay_ms(1000) ;
   if(valeur_RS[4])
     {
      valeur_RS[4] = 0;
      valeur_RS[5] = 0;
      RB5_bit=1;
      Delay_ms(100) ;
      RB5_bit=0;
    }
    }Delay_ms(10);
    RS485Master_Send(valeur_RS,1,161);
    Delay_ms(1000) ;
     if(valeur_RS[4])
     {RB4_bit=1;
      Delay_ms(100) ;
      RB4_bit=0;
       }
}
}


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 13-07-2014, 06:13 PM المشاركة 4   
افتراضي


شكراً اخ هادي هنالك شي يحصل لا أفهمه يشتغل الماستر و- two slaves لمدة 2min بصفة عادية ويقع المحاكاة بعد ذلك الثلاثة بكات لا تشتغل عندما بحثت وجدت أن مشكل overflow stack!!! لانه هنالك كثير من calls هذا كودي 16F876A
كود:
sbit  rs485_rxtx_pin  at RA0_bit;
sbit  rs485_rxtx_pin_direction at TRISA0_bit;


char valeur_RS[8];
void interrupt() {
  RS485Master_Receive(valeur_RS);

}
void main(){
 TRISB5_bit=0;
 TRISB4_bit=0;
 RB5_bit=0;
 RB4_bit=0;

  ADCON1=0;
  CMCON=7;


  UART1_Init(19200);
    Delay_ms(100) ;
  RS485Master_Init();
    Delay_ms(100) ;
  
  valeur_RS[0] = 0;
  valeur_RS[1] = 0;
  valeur_RS[2] = 0;
  valeur_RS[4] = 0;
  valeur_RS[5] = 0;
  valeur_RS[6] = 0;
  valeur_RS[7] = 0;

  RCIE_bit = 1;
  TXIE_bit = 0;
  PEIE_bit = 1;
  GIE_bit = 1;Delay_ms(100) ;
   RB4_bit=1;
   RB5_bit=1;
   Delay_ms(300) ;
   RB4_bit=0;
   RB5_bit=0; while(1){
    Delay_ms(1000);
    RS485Master_Send(valeur_RS,1,160);
    Delay_ms(1000) ;
   if(valeur_RS[4])
     {
      valeur_RS[4] = 0;
      valeur_RS[5] = 0;
      RB5_bit=1;
      Delay_ms(100) ;
      RB5_bit=0;
    }
    }Delay_ms(10);
    RS485Master_Send(valeur_RS,1,161);
    Delay_ms(1000) ;
     if(valeur_RS[4])
     {RB4_bit=1;
      Delay_ms(100) ;
      RB4_bit=0;
       }
}
}
ممكن اخي ترفقلي كل ملفات لان حسب قولك لديك master واثنان من slave
معناه هناك ثلاثه برامج وملف محاكاه فارجو ان ترفقلي كل هذه ملفات لكي نناقش اخطاء وصول الى نتائج افضل
تحياتي


mohamed_amine
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2012
المشاركات: 87
نشاط [ mohamed_amine ]
قوة السمعة:0
قديم 14-07-2014, 08:39 AM المشاركة 5   
افتراضي


ممكن اخي ترفقلي كل ملفات لان حسب قولك لديك master واثنان من slave
معناه هناك ثلاثه برامج وملف محاكاه فارجو ان ترفقلي كل هذه ملفات لكي نناقش اخطاء وصول الى نتائج افضل
تحياتي
هذا برنامج SLAVE أما المحاكاة فاني أقوم بتجريب مباشر على ميكرنترلر
كود:
sbit  rs485_rxtx_pin at RA0_bit;
sbit  rs485_rxtx_pin_direction at TRISA0_bit;
char valeur_RS_2[8];void interrupt() {
 RS485Slave_Receive(valeur_RS_2);
}void main() {
  TRISB0_bit=0;
  RB0_bit=0;
  CMCON=7;

  T2CON = 0;
  TMR2 = 0;

  UART1_Init(19200);
  Delay_ms(100);
  RS485Slave_Init(160);
  
   valeur_RS_2[4] = 0;
   valeur_RS_2[5] = 0;
   valeur_RS_2[6] = 0;
  
  RCIE_bit = 1;
  TXIE_bit = 0;
  PEIE_bit = 1;
  GIE_bit = 1;


  do {if(valeur_RS_2[4]==255)
    {
    valeur_RS_2[4] = 0;
    valeur_RS_2[5] =0;

     valeur_RS_2[0]=1;
     valeur_RS_2[1]=5;
     valeur_RS_2[2]=20;
   RB0_bit=1;
   Delay_ms(100);
   RB0_bit=0;
   RS485Slave_Send( valeur_RS_2,3);
    }
    }while(1);
كود:
]

sbit  rs485_rxtx_pin_direction at TRISA0_bit;
char valeur_RS_2[8];void interrupt() {
 RS485Slave_Receive(valeur_RS_2);
}void main() {
  TRISB0_bit=0;
  RB0_bit=0;
  CMCON=7;

  T2CON = 0;
  TMR2 = 0;

  UART1_Init(19200);
  Delay_ms(100);
  RS485Slave_Init(161);
  
   valeur_RS_2[4] = 0;
   valeur_RS_2[5] = 0;
   valeur_RS_2[6] = 0;
  
  RCIE_bit = 1;
  TXIE_bit = 0;
  PEIE_bit = 1;
  GIE_bit = 1;


  do {if(valeur_RS_2[4]==255)
    {
    valeur_RS_2[4] = 0;
    valeur_RS_2[5] =0;

     valeur_RS_2[0]=1;
     valeur_RS_2[1]=5;
     valeur_RS_2[2]=20;
   RB0_bit=1;
   Delay_ms(100);
   RB0_bit=0;
   RS485Slave_Send( valeur_RS_2,3);
    }
    }while(1);


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 14-07-2014, 01:59 PM المشاركة 6   
افتراضي


السلام عليكم
المشروع يعمل حمل مشروع وأتاكد لربما مشكله في هاردوير
http://up.top4top.net/downloadf-top4...dca61-rar.html
تحياتي


hamzazayyad
:: مهندس متميز ::
تاريخ التسجيل: Aug 2005
الدولة: موزنبيق
المشاركات: 701
نشاط [ hamzazayyad ]
قوة السمعة:0
قديم 14-07-2014, 08:01 PM المشاركة 7   
افتراضي


شكراً اخ هادي هنالك شي يحصل لا أفهمه يشتغل الماستر و- two slaves لمدة 2min بصفة عادية ويقع المحاكاة بعد ذلك الثلاثة بكات لا تشتغل عندما بحثت وجدت أن مشكل overflow stack!!! لانه هنالك كثير من calls هذا كودي 16F876A
كود:
sbit  rs485_rxtx_pin  at RA0_bit;
sbit  rs485_rxtx_pin_direction at TRISA0_bit;

I
char valeur_RS[8];
void interrupt() {
  RS485Master_Receive(valeur_RS);

}
void main(){
 TRISB5_bit=0;
 TRISB4_bit=0;
 RB5_bit=0;
 RB4_bit=0;

  ADCON1=0;
  CMCON=7;


  UART1_Init(19200);
    Delay_ms(100) ;
  RS485Master_Init();
    Delay_ms(100) ;
  
  valeur_RS[0] = 0;
  valeur_RS[1] = 0;
  valeur_RS[2] = 0;
  valeur_RS[4] = 0;
  valeur_RS[5] = 0;
  valeur_RS[6] = 0;
  valeur_RS[7] = 0;

  RCIE_bit = 1;
  TXIE_bit = 0;
  PEIE_bit = 1;
  GIE_bit = 1;Delay_ms(100) ;
   RB4_bit=1;
   RB5_bit=1;
   Delay_ms(300) ;
   RB4_bit=0;
   RB5_bit=0; while(1){
    Delay_ms(1000);
    RS485Master_Send(valeur_RS,1,160);
    Delay_ms(1000) ;
   if(valeur_RS[4])
     {
      valeur_RS[4] = 0;
      valeur_RS[5] = 0;
      RB5_bit=1;
      Delay_ms(100) ;
      RB5_bit=0;
    }
    }Delay_ms(10);
    RS485Master_Send(valeur_RS,1,161);
    Delay_ms(1000) ;
     if(valeur_RS[4])
     {RB4_bit=1;
      Delay_ms(100) ;
      RB4_bit=0;
       }
}
}

اخي ادا كانت المسكله بكثره call فقم بنغير البيك الى عائله 18f فعدد call بها اكبر من عائله 16f


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 15-07-2014, 02:52 AM المشاركة 8   
افتراضي


اخي ادا كانت المسكله بكثره call فقم بنغير البيك الى عائله 18f فعدد call بها اكبر من عائله 16f
السلام عليكم
أعتقد call والله اعلم انك مثلا عندك مصفوفه ذو 8 عناصر وداخل البرنامج خليت لوب لتسعه عناصر فهنا لما يضع عنصر تاسع مصفوفه ماراح يجدها فيعلق البرنامج وعلى بروتيس يعطيك راسائل خطأ
وايضا كما تفضلت اذا كثرت من دوال فرعيه ولكن هذه حاله كمبايلر مايكروسي برو راح يخبرك انه لاتوجد ميموري كافيه لـ stack

ولكن أعتقد مشكله أخي لربما هي بهاردوير ننتظر منه الرد للتأكد هل ربط عنده صحيح ام لا يعني خصوصا في ربط الى TX , RX بأعتبار انه في RS485 هو استخدم UART وبتالي ملزم بربط اللا الاطراف TX , RX

تحياتي الطيبه لكم

إضافة رد

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

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

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


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

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