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

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

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:136
قديم 04-10-2013, 07:13 AM المشاركة 1   
افتراضي مشكله في مشروع باسورد Twitter FaceBook Google+



اخواني سلام عليكم
لما دخل باسورد مثلا 123456789 يتقبل مايكرو شفره بشكل طبيعي
حيث يتم خزنها في ايبروم ولما اضغط على زر stop في بروتيس ومن ثم أعيد تشغيل بروتيس ادخل شفره التي قمت بكتابتها سابقا يعمل بشكل طبيعي
ولكن لما اخرج من بروتيس وأعيد أدخل باسورد 123456789 لايتقبله أبدا
علما عند أدخال اي رقم يتم خزنه في ايبروم وبعد ضغط على انتر يقوم مايكرو بقراءه شفره مخزونه مسبقا في ايبروم وويقارنها مع شفره التي تم خزنها
هذا هو كود ادخال شفره
كود:
void test_password(char address)
{
GIE_BIT=0;//Global Interrupt disable bit
delay_ms(20);//delay between read eeprom and write eeprom
 if(kp is 4 && pp>0)// cancel password
        {
          pp--;
          eeprom_write(address,pp);
          lcd_chr(2,pp+1,' ');
        }
 else if(kp !=4 && kp!=255)
           {
            if(pp< 15) // passaword length max. 15 can be change and one for store number of password
              {
                 pp++;
                 if(equation is 0) {lcd_chr(2,pp,'*'); }
                 else if(equation is 1)
                       {
                        if(number is 2)number=12;    //char security[]={8,19,5,6,12,17,14,14,12};
                        else if(number is 2)number=12;
                        else if(number is 4)number=14;
                        else if(number is 7)number=17;
                        else if(number is 9)number=19;
                        lcd_chr(2,pp,number+97);
                       }
                 eeprom_write( (pp+address),number); //must be write pp for write address start from 1
                 eeprom_write(address,pp);

              }
           }
 delay_ms(20);//delay between read eepro and write eeprom
 GIE_BIT=1;//Global Interrupt Enable bit
}
حيث هنا اولا قمت بالغاء تفعيل الانتربت وانتظرت 20 ملي ثانيه وبعدها اذا تم ضغط على الارقام من كيباده يتم خزن الارقام في ايبروم
طبعا كود أعلاه يمثل داله فرعيه وهذا كود أستدعاء داله
كود:
if(kp !=12 && state_alarm !=1)// password before change
          {
           test_password(16);

          }
حيث 16 يمثل قيمه address
ايضا خزنت طول شفره في موقع address
اما شفره تخزن في موقع address+pp حيث pp يمثل طول شفره
**************************************************
بعدما اضغط على انتر سوف أدخل في هذه الاكواد
كود:
while(kp is 12 && eeprom_read(16)>0) // if switch(#) enter  is pressed
         {
             message( input_pass,1);
             for(x=0;x<=eeprom_read(16);x++)
                     {
                      if( (eeprom_read(x+16)is eeprom_read(x)) ) state_password=1;
                       else {
                             state_password=0;
                             break; // password vaild and exit from for
                            }
                     }
في داله for تعتمد على طول شفره والتي تم خزنها في موقع 16
بعدها اقارن بيانات التي تم ادخالها وهي مخزونه من موقع 17 مع بيانات ابتداءا من موقع 1
علما انه حسب كود اقارن طول شفره اصليه مخزونه بموقع 0 مع طول شفره التي تم أدخالها مخزونه بموقع 16
عندما يسجل مايكرو اي رقم غير متساوي يخرج ويعطي رساله خطأ
انا استغليت ايبروم للكتابه والقراءه بدلا من استخدام متغيرات

مشكله الي عندي كما ذكرت بالبدايه انه اذا غيرت شفره وضعت 123456789 مثلا
ثم اطفا بروتيس من زر stop واعيد تشغيله وادخل رمز 123456789 اوكي يخبرني كود صحيح
انا وضعت لنفسي هذا كود لارى هل يتم خزنت البيانات في ايبروم ام لا
كود:
for(x=0;x<9;x++)
   {
    k1=eeprom_read(x);
     lcd_chr(2,x+1,k1+48);

  timer(20);// 65 msecond
   }
لما اطفئ بروتيس واعيد تشغيله يظهر على شاشه 123456789
ولكن لما اخرج من بروتيس تماما ثم اعيد تشغيله ارى الارقام تظهر على شاشه تغيرت ويعرض لي 777 فقط ومسح بيانات التي تم خزنها اين مشكله ياخواني

اعلانات

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


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

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

عبقرينو1
:: مهندس متميز ::
تاريخ التسجيل: Oct 2010
الدولة: جمهورية مصر العربية - الاسكندرية
المشاركات: 557
نشاط [ عبقرينو1 ]
قوة السمعة:0
قديم 04-10-2013, 11:33 PM المشاركة 3   
افتراضي


اخى العزيز بالنسبه لاخر كود ارسلته لى بالخاص والذى به ليد خلفيه الشاشه
فهو يعمل جيدا ويختفظ بالكود والباسورد حتى بعد فصل الكهرباء عنه

سلمت يداك احى الكريم

إضافة رد

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

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

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


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

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