vaheeed
پنج شنبه 17 اسفند 1391, 22:28 عصر
سلام
من با atmega8 میخوام یه عدد رو داخل حافظه اش ذخیره کنم که با قطع و وصل برق از بین نره ،چون عددم 4 رقمی است باید در 2 خونه بنویسم تا جایی که خوندم باید با دستورات زیر کار کنم که داخل eeprom ذخیره بشه ، اول 2 خونه 200 و 300 رو میخونم :
EEAR=200;
EECR=0x01;
num1=EEDR;
EEAR=300;
EECR=0x01;
num2=EEDR;
num=(num1*100)+num2;
بعد رمز رو میگیرم و اینطوری ذخیره میکنم :
newPass=1234;
num1=newPass/100;
EEDR=num1;
EEAR=200;
EECR=0x04;
EECR=0x02;
while((EECR&0x02)==1);
num2=newPass-(num1*100);
EEDR=num2;
EEAR=300;
EECR=0x04;
EECR=0x02;
while((EECR&0x02)==1);
حالا بلافاصله با این دستور میخونم دوباره همون 2 تا خونه رو :
EEAR=200;
EECR=0x01;
num1=EEDR;
EEAR=300;
EECR=0x01;
num2=EEDR;
num=(num1*100)+num2;
عدد 1234 رو بصورت 3434 نشون میده !!!
جالب اینجاست که برق رو قطع و وصل میکنم حالا همون اول که میخواد این 2 تا خونه رو بخونه عدد 1455 نشون میده !!!! میشه راهنمایی کنید ممنون از همگی
من با atmega8 میخوام یه عدد رو داخل حافظه اش ذخیره کنم که با قطع و وصل برق از بین نره ،چون عددم 4 رقمی است باید در 2 خونه بنویسم تا جایی که خوندم باید با دستورات زیر کار کنم که داخل eeprom ذخیره بشه ، اول 2 خونه 200 و 300 رو میخونم :
EEAR=200;
EECR=0x01;
num1=EEDR;
EEAR=300;
EECR=0x01;
num2=EEDR;
num=(num1*100)+num2;
بعد رمز رو میگیرم و اینطوری ذخیره میکنم :
newPass=1234;
num1=newPass/100;
EEDR=num1;
EEAR=200;
EECR=0x04;
EECR=0x02;
while((EECR&0x02)==1);
num2=newPass-(num1*100);
EEDR=num2;
EEAR=300;
EECR=0x04;
EECR=0x02;
while((EECR&0x02)==1);
حالا بلافاصله با این دستور میخونم دوباره همون 2 تا خونه رو :
EEAR=200;
EECR=0x01;
num1=EEDR;
EEAR=300;
EECR=0x01;
num2=EEDR;
num=(num1*100)+num2;
عدد 1234 رو بصورت 3434 نشون میده !!!
جالب اینجاست که برق رو قطع و وصل میکنم حالا همون اول که میخواد این 2 تا خونه رو بخونه عدد 1455 نشون میده !!!! میشه راهنمایی کنید ممنون از همگی