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

   

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 05-08-2013, 09:05 PM المشاركة 9   
افتراضي



أخي العزيز
أولا البرنامج لا يحتاج إلي تنصيب, فكما قلت لك يعمل البرنامج من Command Prompt كما وضحت في الصورة السابقة.
ثانيا أنا أستخدم AVR ولا أستخدم PIC و لذلك طلبت منك تحويل ملف eep, و لكني عرفت بالبحث علي الانترنت أن ملف EEPROM الخاص ب PIC هو .ihex و في مشروعك ستجد اسم الملف هو easy pic_counter_eeprom.ihex, و عموما فقد حولت لك الملف هنا

بالنسبة لمشروع eeprom_counter, لا أظن أن هذا الكود مكتوب بطريقة صحيحة, أظن أنك ترغب في العد من 0 إلي 99 ثم تكرار هذا إلي الأبد, و يتم تخزين آخر رقم في eeprom بحيث لا يبدأ العد من 0 في المرة القادمة, هل هذا ما تقصده؟ إذا كان نعم, فإن هذا الكود لا يمكن أن يؤدي هذه الوظيفة, أنصحك أن تعدل الكود ليكون كالتالي:

كود:
char y=0, old=0;
int x=0;
char segment[]={63,6,91,79,102,109,125,7,127,111};
void show_number();
void main()

{
ANSELA=0;
ANSELD=0;
trisd=0;
 trisa=0;
 porta=0;
 portd=0;

 if( eeprom_read(2)!=255 )  old=eeprom_read(2);

  while(1)
    {                                                                                                                                                   
      for( x=old ;x<100;x++)
           {
           show_number();
//حتي تتمكن من ملاحقة العد, و  لتعطي وقتا كافيا للكتابة
           delay_ms(500);      
            eeprom_write(2,x);
           }
    }
}

void show_number()
{
     porta.f0=0; porta.f1=1;porta.f2=1; porta.f3=1;
     portd=segment[x/10];
     delay_ms(2);
     portd=0;
       porta.f0=1; porta.f1=0;porta.f2=1; porta.f3=1;
     portd=segment[x%10];
    delay_ms(2);
    portd=0;
}
أرجو مراجعة التعديلات

بالنسبة لمشروع PIC18F45, فهو فعلا يحتاج إلي delay قبل الكتابة, و هذا معني التحذير الذي يعرضه البرنامج:


و قد أضفت delay نصف ثانية, و ذلك لأن عرض الأرقام سيكون سريعا جدا و لن تتمكن أصلا من رؤية الأرقام! و هذا الdelay يفيد أيضا ليعطي eeprom فرصة للكتابة

أرجو أن ينهي هذا مشكلتك
سلام عليكم
اخي كريم جربت عداد في حقيقه شتغل ويعمل بشكل سليم وعندما اطفئ كهرباء يبدا بالفعل من اخر رقم

ولكن المشكله في بروتيس لاتزال موجوده وضعت ملف الي امتداده bin وضعته في بروتيس كما خبرتني ولكن لم تفلح عمليه
ارجوا بعد اذنك كيف قمت بتحويل انا طبقت الي قلته بالصوره ومانجح يخبرني الوصول غير ناجح ايمكنك فقط كتابه مسار الي حولته اي عنديcmd.exe بس اي مسار اكتب ارجوا اعاده هذه نقطه وهل هذا يحل مشكله بروتيس
========================================
بالنسبه للزمن الذي وضعته نصف ثانيه لايجوز يااخي ان نضع زمن بعد داله عرض الارقام لان سوف يجعل سفن سكمنت تشتغل وتنطفئ وهو نعم لابد من وجود زمن ولكن يتم وضعه كما في كود وسبب لان سفن سكمنت تعمل بطريقه multiplexing وهذا يجب ان لايزيد زمن كلي لاطفاء وتشغيل سفن سكمنت عن 20 ملي ثانيه
وعليه بسيطه نضع عداد يكرر زمن صغير عدت مرات كما واضح بالكود
كود:
for( y=0; y<100;y++)
    {
     porta.f0=0; porta.f1=1;
     portd=segment[x/10];
     delay_ms(1);
     portd=0;
       porta.f0=1; porta.f1=0;
     portd=segment[x%10];
    delay_ms(1);
    portd=0;

}
=========================================

بالنسبه لرساله الخطأ في بروتيس يحدث هذا مع 18f45k22 علما انا استخدمت زمن تاخير ولكن بدون جدوى للعلم انه بالحقيقه يشتغل بشكل سليم ماعدا في بروتيس
اما بالنسبه 16f877a فلاتوجد مشكله فيه
======================================
مع شكري وتقديري لاخي كريم


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 05-08-2013 الساعة 09:09 PM
اعلانات

armor
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2006
المشاركات: 112
نشاط [ armor ]
قوة السمعة:
قديم 06-08-2013, 12:03 AM المشاركة 10   
افتراضي


سلام عليكم
اخي كريم جربت عداد في حقيقه شتغل ويعمل بشكل سليم وعندما اطفئ كهرباء يبدا بالفعل من اخر رقم

ولكن المشكله في بروتيس لاتزال موجوده وضعت ملف الي امتداده bin وضعته في بروتيس كما خبرتني ولكن لم تفلح عمليه
ما المشكلة مادام يعمل بشكل سليم و يكمل من آخر رقم؟ و ماذا تقصد بلم تفلح العملية؟
ارجوا بعد اذنك كيف قمت بتحويل انا طبقت الي قلته بالصوره ومانجح يخبرني الوصول غير ناجح ايمكنك فقط كتابه مسار الي حولته اي عنديcmd.exe بس اي مسار اكتب ارجوا اعاده هذه نقطه وهل هذا يحل مشكله بروتيس
إن شاء الله سأرسل شرحا لعملية التحويل, و أرجو أن تخبرني ما هي المشكلة بالضبط
بالنسبه للزمن الذي وضعته نصف ثانيه لايجوز يااخي ...........
هذا صحيح, فاتني هذا
بالنسبه لرساله الخطأ في بروتيس يحدث هذا مع 18f45k22 علما انا استخدمت زمن تاخير ولكن بدون جدوى للعلم انه بالحقيقه يشتغل بشكل سليم ماعدا في بروتيس
اما بالنسبه 16f877a فلاتوجد مشكله فيه
إذا كانت الدائرة تعمل بشكل صحيح في الواقع, فلا تهتم بالبروتس, و يمكنك أن تتجاهل هذه المشكلة عن طريق زيادة سرعة استجابة EEPROM في البروتس كالتالي:

أدخل قيمة صغيرة جدا, مثلا 1us بدلا من 25us و لكن لا يفضل اللجوء إلي هذا الحل إلا إذا كنت متأكدا تماما أن الدائرة ستعمل عمليا بشكل سليم, و أنصحك قبل القيام بهذه الخطوة بمراجعة خصائص المشروع و منها تردد الكريستالة

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

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 06-08-2013, 03:02 AM المشاركة 11   
افتراضي


ما المشكلة مادام يعمل بشكل سليم و يكمل من آخر رقم؟ و ماذا تقصد بلم تفلح العملية؟

إن شاء الله سأرسل شرحا لعملية التحويل, و أرجو أن تخبرني ما هي المشكلة بالضبط
اخي كريم سلام عليكم
مشكله اريد ضبط القراءه وكتابه يعني التاكد من صحه عمل مشروع على بروتيس
لان ياخي احيانا عندي مشروع كبير ويحتاج لوحه مفاتيح مثلا او حسسات اوغيرها لااملكها في واقع العملي فاكيد رؤيه مشروع يعمل على بروتيس شي رائع واكيد الملاحظات التي يعطيها احيانا بروتيس لها سبب علمي لربما اذا تجاهلتها ستؤثر على استقراريه الدائره واحيانا قد تؤثر او لا لايمكن ان شعر بذلك فعمل مشروع بدون اخطاء في بروتيس يقيك هذا احتمال هو نعم لايشبه حقيقه ولكن اعطاء خطاء ربما لها تأثير سلبي
فكل مااريده هول حل مشكله رساله التي تظهر في بروتيس والعجيب في الامر انه اذا استخدم البك من عائله 16f لاتظهر رسائل الخطا ماعدا البك من عائله 18f
ولكن جمعيهم لاتعمل ايبروم في بروتيس
لاني لاحظت شغله بواقع عملي اني اذا عندي رقم حجمه يحتاج الى 2 byte هنا
قمت بهذا بكتابه طريقه خزن الارقام بهذه طريق لاحظ الكود كاملا
كود:
char y=0, old=0,kk=0,old1=0,old2=0;
int x=0;
// char segment[]={192,249,164,176,153,146,130,248,128,144};
char segment[]={63,6,91,79,102,109,125,7,127,111};
void show_number();
void main()

{
ANSELA=0;
ANSELD=0;
trisd=0;
 trisa=0;
 porta=0;
 portd=0;

if( eeprom_read(2)!=0xff ||eeprom_read(3)!=0xff ) { old=eeprom_read(3) *100+ EEPROM_Read(2);
                                                   delay_ms(20);

                                                  }

  while(1)
    {                                                                                                                                                   //
      for( x=old ;x<=999;x++)
           {
                show_number();
                EEPROM_Write(3,x/100);
                EEPROM_Write(2,x%100);

          }
          old=0;
    }
}

void show_number()
{
for( y=0; y<100;y++)
    {
     porta.f0=0; porta.f1=0;porta.f2=0; porta.f3=1;
     portd=segment[x/1000];
     delay_ms(1);
     portd=0;
       porta.f0=0; porta.f1=0;porta.f2=1; porta.f3=0;
     portd=segment[x%1000/100];
    delay_ms(1);
    portd=0;
      porta.f0=0; porta.f1=1;porta.f2=0; porta.f3=0;
     portd=segment[x%1000%100/10];
     delay_ms(1);
     portd=0;
        porta.f0=1; porta.f1=0;porta.f2=0; porta.f3=0;
     portd=segment[x%1000%100%10];
    delay_ms(1);
    portd=0;


    }


}
طبعا في بروتيس اصلا لايخزن الارقام فقط يعطي رسائل خطأ
لاحظت في واقع عملي انه اذا اطفئ جهاز وقم بشغيله احيانا مايبدا من اخر قم
مثلا كان عداد =400 واطفاته وعندما شغله بدأ من رقم 150
وكان عدد 240 اطفاته وشغلته بدء الدد من 240
وكان عدد 470 بدء العدد من 240
واحيانا من الصفر يعني ماتوجد اي استقراريه
===================================
فكرت بطريق اخرى لخزن الارقام وكان هذا هو كود جديد
كود:
char y=0, old=0,kk=0,old1=0,old2=0;
int x=0;
// char segment[]={192,249,164,176,153,146,130,248,128,144};
char segment[]={63,6,91,79,102,109,125,7,127,111};
void show_number();
void main()

{
ANSELA=0;
ANSELD=0;
trisd=0;
 trisa=0;
 porta=0;
 portd=0;

if( eeprom_read(2)!=0xff ||eeprom_read(3)!=0xff ) { old1=eeprom_read(3) ;
                                                     old2= EEPROM_Read(2);
                                                   delay_ms(20);

                                                  }

  while(1)
    {                                                                                                                                                   //
      for( kk=old1 ;kk<=10;kk++)
           {
                EEPROM_Write(3,kk);

               for( x=old2 ;x<=99;x++)
                    {
                     show_number();
                     EEPROM_Write(2,x);

                   }
                 old2=0;
          }
    old1=0;
    }
}

void show_number()
{
for( y=0; y<100;y++)
    {
     porta.f0=0; porta.f1=0;porta.f2=0; porta.f3=1;
     portd=segment[kk/10];
     delay_ms(1);
     portd=0;
       porta.f0=0; porta.f1=0;porta.f2=1; porta.f3=0;
     portd=segment[kk%10];
    delay_ms(1);
    portd=0;
      porta.f0=0; porta.f1=1;porta.f2=0; porta.f3=0;
     portd=segment[x/10];
     delay_ms(1);
     portd=0;
        porta.f0=1; porta.f1=0;porta.f2=0; porta.f3=0;
     portd=segment[x%10];
    delay_ms(1);
    portd=0;


    }


}
في هذه مره حصلت استقراريه افضل من كود سابق
اطفاته عند عدد 265 وشغلته وبدا من نفس العدد
اطفاته عند عدد 400 وشغلته وبدا من نفس العدد
اطفاته عند عدد 500 وشغلته وبدا من نفس العدد

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


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 06-08-2013 الساعة 03:11 AM

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 06-08-2013, 03:34 AM المشاركة 12   
افتراضي


[QUOTE=armor;776690]

إذا كانت الدائرة تعمل بشكل صحيح في الواقع, فلا تهتم بالبروتس, و يمكنك أن تتجاهل هذه المشكلة عن طريق زيادة سرعة استجابة EEPROM في البروتس كالتالي:

أدخل قيمة صغيرة جدا, مثلا 1us بدلا من 25us و لكن لا يفضل اللجوء إلي هذا الحل إلا إذا كنت متأكدا تماما أن الدائرة ستعمل عمليا بشكل سليم, و أنصحك قبل القيام بهذه الخطوة بمراجعة خصائص المشروع و منها تردد الكريستالة[/QUOTE
نعم قمت بوضع زمن 1us ثم غيرته الى زمن اصغر مثلا 1ns , وبعدها جعلته اصغر 0.0001ns ولم تظهر اي رسائل خطأ مافائده هذا زمن لكن ظاهر لابد ان يكون له قيمه ولماذا يااخي لا يفضل اللجوء إلي هذا الحل ؟
مع الشكر والتقدير


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 06-08-2013 الساعة 03:41 AM

armor
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2006
المشاركات: 112
نشاط [ armor ]
قوة السمعة:
قديم 06-08-2013, 11:43 AM المشاركة 13   
افتراضي


كود:
char y=0, old=0,kk=0,old1=0,old2=0;
int x=0;
.
.
.
  while(1)
    {                                                                                                                                                   //
      for( x=old ;x<=999;x++)
           {
                show_number();
                EEPROM_Write(3,x/100);
                EEPROM_Write(2,x%100);

          }
          old=0;
    }
}
طبعا في بروتيس اصلا لايخزن الارقام فقط يعطي رسائل خطأ
لاحظت في واقع عملي انه اذا اطفئ جهاز وقم بشغيله احيانا مايبدا من اخر قم
مثلا كان عداد =400 واطفاته وعندما شغله بدأ من رقم 150
وكان عدد 240 اطفاته وشغلته بدء الدد من 240
وكان عدد 470 بدء العدد من 240
واحيانا من الصفر يعني ماتوجد اي استقراريه
هذا لأنه لا يمكن لمتغير من نوع char أن يحمل قيمة أكبر من 127 أو أقل من -128, راجع هذه الصفحة:
http://www.mikroe.com/download/eng/d...etic_types.htm
راجع أيضا العلامات في الكود ولاحظ التعارض
فكرت بطريق اخرى لخزن الارقام وكان هذا هو كود جديد
كود:
char y=0, old=0,kk=0,old1=0,old2=0;
int x=0;
// char segment[]={192,249,164,176,153,146,130,248,128,144};
char segment[]={63,6,91,79,102,109,125,7,127,111};
void show_number();
void main()

{
ANSELA=0;
ANSELD=0;
trisd=0;
 trisa=0;
 porta=0;
 portd=0;

if( eeprom_read(2)!=0xff ||eeprom_read(3)!=0xff ) { old1=eeprom_read(3) ;
                                                     old2= EEPROM_Read(2);
                                                   delay_ms(20);

                                                  }

  while(1)
    {                                                                                                                                                   //
      for( kk=old1 ;kk<=10;kk++)
           {
                EEPROM_Write(3,kk);

               for( x=old2 ;x<=99;x++)
                    {
                     show_number();
                     EEPROM_Write(2,x);

                   }
                 old2=0;
          }
    old1=0;
    }
}
}
في هذه مره حصلت استقراريه افضل من كود سابق
اطفاته عند عدد 265 وشغلته وبدا من نفس العدد
اطفاته عند عدد 400 وشغلته وبدا من نفس العدد
اطفاته عند عدد 500 وشغلته وبدا من نفس العدد
هذا لأن قيمة x لم تتجاوز 127, عليك أن تتأكد من أن دالة EEPROM_Write تقبل أكثر من Byte في نفس الوقت, فإذا كانت لا تقبل فعليك بتقسيم قيمة المتغير قبل إرسالها
أيضا يجب تحويل المتغيرات المحددة بالبرنامج الأول من char إلي int


armor
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2006
المشاركات: 112
نشاط [ armor ]
قوة السمعة:
قديم 06-08-2013, 11:55 AM المشاركة 14   
افتراضي


نعم قمت بوضع زمن 1us ثم غيرته الى زمن اصغر مثلا 1ns , وبعدها جعلته اصغر 0.0001ns ولم تظهر اي رسائل خطأ مافائده هذا زمن لكن ظاهر لابد ان يكون له قيمه
هذا هو الزمن الذي تستغرقه EEPROM لعملية الكتابة, و الرسالة التي كانت تظهر معناها أنه تم محاولة الكتابة علي EEPROM قبل أن تنتهي من عملية الكتابة السابقة, و تقليل هذا الزمن يجعلها تنتهي بسرعة من العملية السابقة و من ثم تكون مستعدة لعملية الكتابة الجديدة, فلا يحدث تعارض
ولماذا يااخي لا يفضل اللجوء إلي هذا الحل ؟
لأن الزمن الجديد الذي أدخلته ليس واقعيا, و قد لا يعمل البرنامج في الواقع كما تراه علي البروتس, أنت أجبت عن هذا السؤال في ردك السابق
واكيد الملاحظات التي يعطيها احيانا بروتيس لها سبب علمي لربما اذا تجاهلتها ستؤثر على استقراريه الدائره واحيانا قد تؤثر او لا لايمكن ان شعر بذلك فعمل مشروع بدون اخطاء في بروتيس يقيك هذا احتمال هو نعم لايشبه حقيقه ولكن اعطاء خطاء ربما لها تأثير سلبي
جرب التعديلات في الرد السابق و اضبط هذا الزمن علي أي قيمة تجعله يعمل, المهم أولا أن تعمل في الواقع

بخصوص تحويل ملف ihex إلي bin, الشرح موجود في هذا الفيديو:
http://videobam.com/xDBnq
ملحوظة: يجب ضغط زر Shift مع زر الماوس الأيمن حتي يظهر خيار Open command window here


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 06-08-2013, 02:32 PM المشاركة 15   
افتراضي


هذا لأنه لا يمكن لمتغير من نوع char أن يحمل قيمة أكبر من 127 أو أقل من -128, راجع هذه الصفحة:
http://www.mikroe.com/download/eng/d...etic_types.htm
راجع أيضا العلامات في الكود ولاحظ التعارض

هذا لأن قيمة x لم تتجاوز 127, عليك أن تتأكد من أن دالة EEPROM_Write تقبل أكثر من Byte في نفس الوقت, فإذا كانت لا تقبل فعليك بتقسيم قيمة المتغير قبل إرسالها
أيضا يجب تحويل المتغيرات المحددة بالبرنامج الأول من char إلي int
سلام عليكم
اخي كريم اشكرك جزيل الشكر
انا فعلا مختار متغير من نوع int لو تلاحظ ان العداد يعتمد على قيمه x وهي من نوع int فلا مشكله في ذلك اما بالنسبه لخزن القيم فانه قمت بالتجزئه لاحظ الكود
كود:
 EEPROM_Write(3,x/100);
               
 EEPROM_Write(2,x%100);
وهذا يعني اني قسمت قيمه x ا فخبرته اخذ ناتج صحيح من قسمه على 100 واخزنها في موقع ذاكره 3 وبعد ذلك اخبرته اخذ باقي قسمه واخزنها في موقع ذاكره 2
ولكي استعيد القيمه المخزونه عند اطفاء الكهرباء كتبت الكود في بدايه
كود:
if( eeprom_read(2)!=0xff ||eeprom_read(3)!=0xff ) { old=eeprom_read(3) *100+ EEPROM_Read(2); delay_ms(20); }
لكن الشي الذي نبهتني عنه هو متغير old لاني فعلت اخطات في اختيار نوع متغير خصوصا انا اخبرته اجعل x=old وهذا فعلا سوف يحد من قيمه x
كود:
 for( x=old ;x<=999;x++)
انا سعدل على كود وجربه عملي واعطيك النتيجه
شكرا لك على تنبيهي لهذا الخطأ

===========================================
بعد تحويل فقط المتغير char old الى int old استقرت الدائره ويخزن بشكل طبيعي
حقيقه كلمه شكر لك قليله بحقك ادعوا الله لك في هذا الشهر العظيم ان يسهل جميع امورك ويوفقك الله وسلام عليكم


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 06-08-2013 الساعة 03:04 PM

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 06-08-2013, 03:58 PM المشاركة 16   
افتراضي


هذا هو الزمن الذي تستغرقه EEPROM لعملية الكتابة, و الرسالة التي كانت تظهر معناها أنه تم محاولة الكتابة علي EEPROM قبل أن تنتهي من عملية الكتابة السابقة, و تقليل هذا الزمن يجعلها تنتهي بسرعة من العملية السابقة و من ثم تكون مستعدة لعملية الكتابة الجديدة, فلا يحدث تعارض

لأن الزمن الجديد الذي أدخلته ليس واقعيا, و قد لا يعمل البرنامج في الواقع كما تراه علي البروتس, أنت أجبت عن هذا السؤال في ردك السابق

جرب التعديلات في الرد السابق و اضبط هذا الزمن علي أي قيمة تجعله يعمل, المهم أولا أن تعمل في الواقع

بخصوص تحويل ملف ihex إلي bin, الشرح موجود في هذا الفيديو:
http://videobam.com/xDBnq
ملحوظة: يجب ضغط زر Shift مع زر الماوس الأيمن حتي يظهر خيار Open command window here
سلام عليكم
شكرا على فيديو
تم تحويل ملف الى امتداد bin بفضلك وضعته في بروتيس ولكن لاسف لم يعمل برنامج بروتيس يعني لا يخزن الارقام
===============================================
استاذي ماذا تقصد بقولك
" لأن الزمن الجديد الذي أدخلته ليس واقعيا, و قد لا يعمل البرنامج في الواقع كما تراه
في بروتيس "
هل هذا زمن له علاقه بالواقع حقيقي
=======================================
استاذي انت في بروتيس عندك هل يشتغل بشكل صحيح اقصد ملف العداد عندك يشتغل ام نفس مشكله عندي يعني اقصد بعد وضع ملف bin
وشكرا جزيلا


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 06-08-2013 الساعة 04:03 PM


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