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

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

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:110
قديم 30-04-2015, 06:44 AM المشاركة 1   
افتراضي ارجو المساعدة فى امر الشرط {............} (...........) IF Twitter FaceBook Google+




السلام عليكم ورحمه الله

بحمد الله انجزت هذا الكود وهو شغال تمام ...
ولكن واجهتنى مشكله .. وهى ..... عندما يتححق شرط معين وينشغل الميكرو كنترولر فى تنفيذ الاوامر الموجودة داخل دالة الشرط ; {............} (.............)IF

كود:
               
               
               
               
               
               
               
               /*HYGAZY FOR Microsystem*/
               
              
  
   // LCD module connections
sbit LCD_RS at RB5_bit;
sbit LCD_EN at RB4_bit;
sbit LCD_D4 at RB3_bit;
sbit LCD_D5 at RB2_bit;
sbit LCD_D6 at RB1_bit;
sbit LCD_D7 at RB0_bit;
sbit LCD_RS_Direction at TRISB5_bit;
sbit LCD_EN_Direction at TRISB4_bit;
sbit LCD_D4_Direction at TRISB3_bit;
sbit LCD_D5_Direction at TRISB2_bit;
sbit LCD_D6_Direction at TRISB1_bit;
sbit LCD_D7_Direction at TRISB0_bit;
         // End LCD module connections

  //*************//**********************//
  #define EZR_KIY portc.f5=1;delay_ms(120);portc.f5=0;delay_ms(60);portc.f5=1;delay_ms(120);portc.f5=0;delay_ms(60);
  #define EZR_TEST portc.f5=1;delay_ms(150);portc.f5=0; delay_ms(60);portc.f5=1;delay_ms(150);portc.f5=0;delay_ms(60);portc.f5=1;delay_ms(150);portc.f5=0;
  #define EZR_eror portc.f5=1;delay_ms(5000); EZR_TEST
  #define CLEAR Lcd_Cmd(_LCD_CLEAR);
 //*************************************//



      void main(){
       int x=0;
       int A=0;
     adcon1=0x06;
  trisb=0; portb=0;  trisd=1; portd=0;
  trisc=0; portc=0;  trisa=0; porta=0;
         trise=0; porte=0;

         Lcd_Init();
   Lcd_Cmd(_LCD_CURSOR_OFF); // cursor off
          START:
   Lcd_Cmd(_LCD_CLEAR);     // clear LCD
   lcd_out(1,1,"<<<<<Welcome>>>>");
   lcd_out(2,2,"Loading System");
   EZR_KIY
     delay_ms(1000);

   Lcd_Cmd(_LCD_CLEAR);
   lcd_out(1,4,"HYGAZY  FOR");
   lcd_out(2,4,"Microsystem");
 EZR_TEST EZR_TEST  EZR_TEST
       delay_ms(1000);
         CLEAR
 lcd_out(1,2,"Chose Cutting");
 lcd_out(2,1,"Program Press UP");

//********************************************************//
                        while(1){
    if(portd.f5==1){ A++;EZR_KIY CLEAR delay_ms(100);}
    if(A==3){A=1; }
    if(portd.f0==1&&A==1){delay_ms(400);EZR_KIY goto loop;}
    if(portd.f0==1&&A==2){delay_ms(400);  goto loop20sm;}
    if(A==1){ lcd_out(2,3,"PlEASE START");lcd_out(1,2,"DISTANCE 10 SM");}
    if(A==2){ lcd_out(2,3,"PlEASE START");lcd_out(1,2,"DISTANCE 20 SM");}
         }
   //*********************************************************//
   //----------------- &#200;&#209;&#228;&#199;&#227;&#204; &#202;&#222;&#216;&#237;&#218; &#218;&#225;&#236; 10&#211;&#227; -----------------//
                            loop:
                           while(1){

   //-------------- MOTONR 1 LEFT && RIGHT --------------------//
    if(portd.f2==1){EZR_KIY portc.f4=1;while(1){ if(portd.f2==0){portc.f4=0;goto loop;}}}//else
    if(portd.f1==1){EZR_KIY portc.f6=1;while(1){ if(portd.f1==0){portc.f6=0;goto loop;}}}//else
   //-------------- MOTONR 2 LEFT && RIGHT---------------------//
    if(porta.f4==1){EZR_KIY portc.f1=1;while(1){ if(porta.f4==0){portc.f1=0;goto loop;}}}//else
    if(porta.f5==1){EZR_KIY portc.f2=1;while(1){ if(porta.f5==0){portc.f2=0;goto loop;}}}//else
        //**************************************************//
   //---------------- CUT 1 MONWAL ---------------------------//
    if(porte.f0==1){ portc=0; portc.f3=1;delay_ms(900); while(1){if(porta.f0==1){portc.f3=0;EZR_TEST delay_ms(300);  goto loop;}}}

          //*******************************************//
    //---------------------restart---------------------------//
    if(portd.f6==1){ A=0;  portc=0;goto START;}
             //**********************************//
   //-------------motor start && stop ----------------------//
    if(portd.f0==1){EZR_KIY delay_ms(400);x++; }
    if(x==1){portc.f4=1;portc.f2=1;}
    if(x==2){portc.f4=0;portc.f2=0;x=0;}
         //*****************************************//
    //-----------TEST SENSOR 1 CUT 1 ----------------------//
    if(portd.f3==1){ portc=0; portc.f3=1;delay_ms(900); while(1){if(porta.f0==1){portc.f3=0;EZR_TEST delay_ms(300);
    portc.f2=1;delay_ms(500);portc.f4=1;portc.f4=1;goto loop;}}}
     //***************************************************//
    //-------------- TEST SENSOR 2 CUT 2 -----------------//
   if(portd.f7==1){delay_ms(50); portc=0;EZR_TEST delay_ms(400);portc.f0=1;delay_ms(100);while(1){if(porta.f1==1){portc=0; EZR_TEST portc.f2=1;delay_ms(400);portc.f2=0;  goto loop;  }}} /// &#202;&#218;&#207;&#237;&#225; &#229;&#202;&#227; &#204;&#207;&#199;&#199;&#199;&#199;
    if(porte.f1==1&&porta.f1==1){ portc.f0=1;delay_ms(300);while(1){if(porta.f1==1){portc.f0=0;EZR_TEST goto loop;}} }
    //*****************************************************//
    //-------------------TEST eror ----------------------//
    if(porta.f2==1){portc=0; x=0;Lcd_Cmd(_LCD_CLEAR);lcd_out(1,6,"Eror");/*EZR_eror*/ goto START; }
    if(porta.f3==1){portc=0; x=0; EZR_eror goto START;}}
          //***************************//
    //---------/----/----/---/---/---/---/--/---/--------//
    //------  &#200;&#209;&#228;&#199;&#227;&#204; &#202;&#222;&#216;&#237;&#218; &#218;&#225;&#236; 20 &#211;&#227;  ------//
                 
                 
                  loop20sm:
                  while(1){

                  
    //-----------MOTONR LEFT && RIGHT------------------//
    if(portd.f2==1){EZR_KIY portc.f4=1;while(1){ if(portd.f2==0){portc.f4=0;goto loop;}}}//else
    if(portd.f1==1){EZR_KIY portc.f6=1;while(1){ if(portd.f1==0){portc.f6=0;goto loop;}}}//else
   //-------------motor start && stop------------------//
    if(portd.f0==1){EZR_KIY delay_ms(400);x++; }
    if(x==1){portc.f4=1;portc.f2=1;}
    if(x==2){portc.f4=0;portc.f2=0;x=0;}
    //--------------restart----------------------------//
    if(portd.f6==1){A=0; portc=0;goto START;}
    //-------------------------------------------------//
    //----------------TEST SENSOR 1 CUT 1-------------//
     if(portd.f4==1){ portc=0; portc.f3=1;delay_ms(900); while(1){if(porta.f0==1){portc.f3=0;EZR_TEST delay_ms(300);
    portc.f2=1;delay_ms(1500);portc.f4=1;portc.f4=1;  goto loop20sm;}}}
    //-----------------------------------------------//
    //-------------- TEST SENSOR 2 CUT 2------------//
    if(portd.f4==1){portc=0;EZR_TEST delay_ms(400);portc.f0=1;delay_ms(100);while(1){if(porta.f1==1){/*EZR_TEST*/ portc=20; goto loop20sm;}}}
    //-------------- TEST SENSOR 2 CUT 2 -------------------------------------------//
    if(portd.f7==1){ portc=0;EZR_TEST delay_ms(400);portc.f0=1;delay_ms(100);while(1){if(porta.f1==1){EZR_TEST portc=20; goto loop20sm;  }}}
   // --------eror TEST eror 1 && 2 --------------//
    if(porta.f2==1){portc=0; x=0; EZR_eror}
    if(porta.f3==1){portc=0; x=0; EZR_eror} } }
//=================**************************===============//
//*********************************************************//
اريد من الميكرو كنترولر أن يختبر أمرشرط أخر ... حتى لو هو مشغول فى تنفيذ شرط معين ..

للتوضيح أكثر..

مثال ...


يوجد امرين شرط .. فى البرنامج التالى واريد من الميكرو اختبار الامرين حتى لو تحقق أى منهم وفى ظل تنفيذ الاوامر الموجودة فى الشرط اللذى تحقق .. يكون الميكرو مراقب للشرط الثانى فى نفس الوقت ..

انظر البرنامج التالى ..

كود:
  void main(){
       int x=0;
       int A=0;
     adcon1=0x06;
  trisb=0; portb=0;  trisd=1; portd=0;
  trisc=0; portc=0;  trisa=0; porta=0;
         trise=0; porte=0;
              while(1){
   
    if(portd.f0==1){portb.f1=1;delay_ms(9000);}
    
    if(portd.f1==1){portb.f1=0;delay_ms(9000);}
   
     }
     }


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

اسف على كل هذا الكلام وياريت حد يساعدتى فى الموضوع دة ....


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 30-04-2015 الساعة 06:55 AM
اعلانات

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 30-04-2015, 07:22 AM المشاركة 2   
افتراضي


صعب هذا إلا فى الأسيمبلى فالأمر متوقف على البرنامج الذى تكتب فيه هل يسمح بذلك أم لا
ربما يكون الحل أن تجعل أحد الأمرين يسبب مقاطعة interrupt

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

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:110
قديم 30-04-2015, 12:25 PM المشاركة 3   
افتراضي


صعب هذا إلا فى الأسيمبلى فالأمر متوقف على البرنامج الذى تكتب فيه هل يسمح بذلك أم لا
ربما يكون الحل أن تجعل أحد الأمرين يسبب مقاطعة interrupt

السلام عليكم ورحمه الله

مشكور جدااا مشرفنا الغالى ...الاستاذ ماجد عباس ..

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



اخى الكريم هل استطيع الاستفادة من التايمر الموجود داخل الميكرو فى مراقبة شرط معين فى ظل انشغال الميكرو فى تنفيذ اوامر اخرى ..


مثل هذا البرنامج ..

كود:
void interrupt(){

                

if(portd.f1==1){portb.f1=0;delay_ms(9000);}

INTCON=0b00100000;
TMR0=0;


}
void main() {
    int m=0;
    int a=0;
    int e=0;
    int w=0;
    int x;
    int k=0;
    
OPTION_REG=0b10000101;
INTCON=0b10100000;
TMR0=217;
trisb=0; portb=0;
trisd=0; portd=0;
trisc=1; portc=0;
trisa=0; porta=0;
trise=0; porte=0;
 
while(1){


if(portd.f0==1){portb.f1=1;delay_ms(9000);}

}
}
اخى الكريم نفذت هذة الفكرة وشتغلت والميكرو فعلا بيراقب الامريين فى نفس الوقت بس بيحصل حاجة غريبة وهى عندما يتحقق الشرط الموجود داخل دالة void interrupt .. فعلا بيشتغل الشرط بس بيفضل الشرط يتحقق لوحدة على طول ... بمنى ان الشرط لو تحقق لأول مرة بينفذ الاوامر الموجودة داخلة و لوحدة بيعيد تنفيذ الاوامر مرة ثانة حتى لو الشرط مش متحقق ويفضل ينفذ الاوامر الموجودة على طول ...
فرأيك اخى اية الحل..

واسف جداا على الاطالة


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 30-04-2015 الساعة 12:53 PM

abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:0
قديم 30-04-2015, 02:37 PM المشاركة 4   
افتراضي


السلام عليكم ورحمه الله

مشكور جدااا مشرفنا الغالى ...الاستاذ ماجد عباس ..

طيب اخى كيف لى ان استفيد من هذا الامر ..

ارجو توضيح الفكرة حتى لو بمثال صغير وانا هفهم الموضوع ان شاء الله



اخى الكريم هل استطيع الاستفادة من التايمر الموجود داخل الميكرو فى مراقبة شرط معين فى ظل انشغال الميكرو فى تنفيذ اوامر اخرى ..


مثل هذا البرنامج ..

كود:
void interrupt(){

                

if(portd.f1==1){portb.f1=0;delay_ms(9000);}

INTCON=0b00100000;
TMR0=0;


}
void main() {
    int m=0;
    int a=0;
    int e=0;
    int w=0;
    int x;
    int k=0;
    
OPTION_REG=0b10000101;
INTCON=0b10100000;
TMR0=217;
trisb=0; portb=0;
trisd=0; portd=0;
trisc=1; portc=0;
trisa=0; porta=0;
trise=0; porte=0;
 
while(1){


if(portd.f0==1){portb.f1=1;delay_ms(9000);}

}
}
اخى الكريم نفذت هذة الفكرة وشتغلت والميكرو فعلا بيراقب الامريين فى نفس الوقت بس بيحصل حاجة غريبة وهى عندما يتحقق الشرط الموجود داخل دالة void interrupt .. فعلا بيشتغل الشرط بس بيفضل الشرط يتحقق لوحدة على طول ... بمنى ان الشرط لو تحقق لأول مرة بينفذ الاوامر الموجودة داخلة و لوحدة بيعيد تنفيذ الاوامر مرة ثانة حتى لو الشرط مش متحقق ويفضل ينفذ الاوامر الموجودة على طول ...
فرأيك اخى اية الحل..

واسف جداا على الاطالة
اخي العزيز
فالمشكلة وهي الوقت فعندما اطلب منه شرط داخله وقت فلن يحقق الشرط التاني
وانك استعملت المتقاطعة واستعملت فيها الوقت
فهده المتقاطعة يمكن ان تحسب لك المدة التي تريد
ساستعمل المثال الدي طرحت هو عليك تغير الوقت 9000 الى 500
وتغير trisd=3
كود:
  void main(){
    
     adcon1=0x06;
  trisb=0; portb=0;  trisd=3; portd=0;
  trisc=0; portc=0;  trisa=0; porta=0;
         trise=0; porte=0;
              while(1){
   
    if(portd.f0==1){portb.f1=1;delay_ms(500);}
    
    if(portd.f1==1){portb.f1=0;delay_ms(500);}
   
     }
     }


التعديل الأخير تم بواسطة : abdewidad بتاريخ 30-04-2015 الساعة 02:51 PM

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:408
قديم 01-05-2015, 07:14 AM المشاركة 5   
افتراضي


اخى
الكلام العام قد يكون صعب تصورة فلو ذكرت ما تريد مثلا
نراقب المدخلين س ، ص
عند وجود "1" على س أو ص يقوم بتنفيذ كذا و عند ص يكون كذا و عند الإثنين يكون كذا ربما يساعدنا ذلك فى الوصول لحل


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 01-05-2015, 08:38 AM المشاركة 6   
Thumbs up


السلام عليكم
يوجد طريقه أفضل ويمكن ان تجعل البيك ينفذ الاوامر بغض النظر عن زمن تاخير

اولا دعني اقول لك ان if لن توخر مايكرو مشكله وحيده في تاخير مايكرو هو delay

لذلك أخي يوجد طريقه لتخلص من ديلي عن طريق انتربت بأستخدام التايمرات يعني أشلون

مثال لنفترض انك عندك ليدات عدد 2 ولكل ليد له سويج معين اريد ان ضغط على سويج ليد بشتغل 3 ثواني وينطفي وكذلك الحل لليد الثاني

هنا انت ستقول اذا ضغط على سويج الاول راح يشتغل ليد ولكن كيف اتخلص من 3 ثواني لكي استطيع تشغيل ليد الثاني

الحل نستخدم تايمر0 او تايمر1 او اي تايمر

طبعا لاتتعب نفسك في توليد الكود لان مايكروشيب وضعت برنامج يولد الكود كامل انت عليك تختار عائله البيك وتايمر وتردد وكم زمن انتربت وهو يولد لك الكود
قم بتحميل البرنامج الذي اسمه timer-calculator من موقع الرسمي
http://www.mikroe.com/timer-calculator/

فكره بسيطه لكل سويج سنفرض له متغيرين الاول نسميه مثلا flag اي sw1_flag وهذا مهمته يعبر عن حاله سويج هل وهو 1 او 0
ومتغير اخر هو time اي sw1_time وهذا مهمته بيحسب زمن الي ينفذ اوامر سويج
اي بأختصار أخي لكل امر تنفيذ يحتاج الى هذين متغيرين
طبعا flag من نوع char اما time يكون اما من نوع char او int يعني حسب قيمه

هذا مثال عملي لكي يتم ايصال الفكره
أكرر العمليه ربما طويله نوعا ما ولكنها سهله وتجعل البيك ينفذ جميع اوامر بدون اي أعاقه او تأخير

كود:
sbit sw1 at RA0_bit;
sbit sw1_dir at TRISA0_bit;
sbit sw2 at RA1_bit;
sbit sw2_dir at TRISA1_bit;

sbit led1 at RB0_bit;
sbit led1_dir at TRISB0_bit;
sbit led2 at RB1_bit;
sbit led2_dir at TRISB1_bit;

char sw1_flag=0, sw2_flag=0 ;
char led1_off_flag=0, led2_off_flag=0 ;
unsigned char sw1_time=0, sw2_time=0 , led1_off_time=0,led2_off_time=0 ;

//Timer0
//Prescaler 1:256; TMR0 Preload = 61; Actual Interrupt Time : 49.92 ms

//Place/Copy this part in declaration section
void InitTimer0(){
  OPTION_REG         = 0x87;
  TMR0                 = 61;
  INTCON         = 0xA0;
}

void Interrupt(){
  if (TMR0IF_bit){
    TMR0IF_bit         = 0;
    TMR0                 = 61;
    //Enter your code here
    
    if(sw1_flag==1)sw1_time++;
    if(sw2_flag==1)sw2_time++;
    if(led1_off_flag==1)led1_off_time++;
    if(led2_off_flag==1)led2_off_time++;
  }
}

void main()
{
 cmcon=7;
 sw1_dir=1;
 sw2_dir=1;
 led1_dir=0;
 led2_dir=0;
 led1=0;
 led2=0;
 InitTimer0();
 while(1)
       {
         if(sw1==0)sw1_flag=1;
         if(sw2==0)sw2_flag=1;
         if(sw1_flag==1 && sw1_time>=5)// mean sw1_time>=250ms
              {
               sw1_flag=0;// clear flag
               sw1_time=0;// clear time
               led1=1;
               led1_off_flag=1;
              }
         if(sw2_flag==1 && sw2_time>=5)// mean sw2_time>=250ms
              {
               sw2_flag=0;// clear flag
               sw2_time=0;// clear time
               led2=1;
               led2_off_flag=1;
              }
              
        if(led1_off_flag==1 && led1_off_time>=60)// mean led1_off_time>=3000ms
             {
              led1_off_flag=0;// clear flag
              led1_off_time=0;// clear time
              led1=0;// off
             }
             
        if(led2_off_flag==1 && led2_off_time>=60)// mean led2_off_time>=3000ms
             {
              led2_off_flag=0;// clear flag
              led2_off_time=0;// clear time
              led2=0;// off
             }
       }
}
تحياتي


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 01-05-2015 الساعة 09:19 AM

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:110
قديم 01-05-2015, 10:13 PM المشاركة 7   
افتراضي الشكر والتقدير لكل من ساهم بمعلومة فى هذا الموضوع جزاكم الله خيرااا


abdewidad

اخي العزيز


فالمشكلة وهي الوقت فعندما اطلب منه شرط داخله وقت فلن يحقق الشرط التاني
وانك استعملت المتقاطعة واستعملت فيها الوقت
فهده المتقاطعة يمكن ان تحسب لك المدة التي تريد
ساستعمل المثال الدي طرحت هو عليك تغير الوقت 9000 الى 500
وتغير trisd=3
مشكورر جداا اخى على اهتمامك بارك الله فيك


[quoteافتراضي
اخى
الكلام العام قد يكون صعب تصورة فلو ذكرت ما تريد مثلا
نراقب المدخلين س ، ص
عند وجود "1" على س أو ص يقوم بتنفيذ كذا و عند ص يكون كذا و عند الإثنين يكون كذا ربما يساعدنا ذلك فى الوصول لحل
__________________
مقالات المهندس ماجد عباس محمد]
[/QUOTE]

الف الف شكر مشرفنا الغالى .. الاستاذ ماجد عباس محمد


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



[quoteحسن هادي محمود

Thumbs up
السلام عليكم
يوجد طريقه أفضل ويمكن ان تجعل البيك ينفذ الاوامر بغض النظر عن زمن تاخير

اولا دعني اقول لك ان if لن توخر مايكرو مشكله وحيده في تاخير مايكرو هو delay
]
مشكورر جدااا استاذى الفاضل ...حسن هادي محمود


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

وانا هذاكر هذا الدرس وتعلم الطريقة الرائعة دى .. مشكور اخى الكريم ...تحياتى لك ..[/QUOTE]

إضافة رد

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

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

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


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

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