سلام عليكم
بعد حل مشكله ظهور رسائل خطأ في قراءه ايبروم
ارفق اليكم كود بسيط لعداد من 0 الى 99 اريد من تنقطع كهرباء يعني اطفأء بروتيس يعد من اخر قيمه ولكن لاسف لايعمل
ماذا فعلت
كتبت امر كتابه في ايبروم في بدايه البرنامج اوكي وجدته يكتب ولكن لما اطفاء بروتيس واعيد تشغيله لايبدا من قيمه التي توقف منه
اليكم الكود وملفات مشروع واتمنى هل هذا خطا حقيقي ام انه سببه برنامج بروتيس وانا لااعتقد ذلك
كود:
char y=0,x, old=0;
void show_number();
void main()
{
CMCON=7;
trisb=0;
trisa=0;
porta=0;
eeprom_write(2,3);
delay_ms(20);
if( eeprom_read(2)!=255 ) old=eeprom_read(2);
while(1)
{ //
for( x=old ;x<99;x++)
{
show_number();
eeprom_write(2,x);
}
old=0;
}
}
void show_number()
{
for( y=0; y<100;y++)
{
porta.f0=1; porta.f1=0;
portb=x/10;
delay_ms(2);
portb=0xff;
porta.f0=0; porta.f1=1;
portb=x%10;
delay_ms(2);
portb=0xff;
}
}
http://arabsh.com/files/0d3f434c6dfb..._test-rar.html
===========================================
لاحظوا اخواني هذا الكود
كود:
eeprom_write(2,3);
delay_ms(20);
if( eeprom_read(2)!=255 ) old=eeprom_read(2);
اذا تم حذف delay_ms(20) سوف تظهر مشاكل في قراءه الذاكره في ايبروم
لذا فهو ضروري بين فقط كتابه وقراءه او بالعكس
ملاحظه لاحظت عندما اضع امر كتابه في ايبروم في داله عرض رقمshow_number()
لاحظ يصبح العد بطيا وهذا يدل على عمليه كتابه لان عمليه كتابه تحتاج الى وقت لربما يصل الى 10ms
اتمنى التفاعل من قبل لكم رغم اني لااجد من يتفاعل مع الموضوع ماعدا للاخ geniusse01 لعل الموضوع غير نافع
عموما المشاكل دائما تعطي خبره لانك تجعلك تتفاعل مع موضوع
وشكر والتقدير للجميع