chào. Các bạn ai biết chỉ mình tí. Mình làm mạch đếm sản phẩm rồi lưu giá trị vào EEPROM của AVR để phòng khi mất điện. Nhưng khi đọc dữ liệu ra nó lại bị thiếu mất hàng đơn vị , hàng đơn vị nó chỉ hiển thị số "0". mình lưu số "125" khi rút điện ra cắm vào thì nó hiển thị số "120" thui. Mình làm đếm 3 tầng. Tầng 1 và 3 hiển thỉ bình thường. Tầng 2 (dèm ) bị lỗi. bạn nào biết cách khằc phục chỉ cho mình biết nha. cám ơn nhiều.
/////////// WRITE //////////
void vrite_dem1()
{ char x;
x= dem1/1000;
EEPROM_Write(0x0007,x);
x= dem1/100;
EEPROM_Write(0x0008,x%10);
x= dem1/10;
EEPROM_Write(0x0009,x%10);
EEPROM_Write(0x0010,dem1%10);
}
/*xxxxxxxxxxxxxxxxxxxxxxx */
void vrite_dem2()
{ char x;
x= dem2/1000;
EEPROM_Write(0x100,x);
x= dem2/100;
EEPROM_Write(0x101,x%10);
x= dem2/10;
EEPROM_Write(0x102,x%10);
EEPROM_Write(0x103,dem2%10);
}
/*hhhhhhhhhhhhhhhhhhhhhhhh*/
void vrite_dem3()
{ char x;
EEPROM_Write(0x0000,dem3/100);
x= dem3/10;
EEPROM_Write(0x0001,x%10);
EEPROM_Write(0x0002,dem3%10);
}
///////////// READ ////
dem2 = 0;
for(j=0;j<4;j++)
{dem2 = dem2*10 + EEPROM_Read(0x100+j); }
dem1 = 0;
for(j=0;j<4;j++)
{dem1 = dem1*10 + EEPROM_Read(0x0007+j); }
dem3 = 0;
for(j=0;j<3;j++)
{dem3 = dem3*10 + EEPROM_Read(0x0000+j); }
dk = 1;
/////////// WRITE //////////
void vrite_dem1()
{ char x;
x= dem1/1000;
EEPROM_Write(0x0007,x);
x= dem1/100;
EEPROM_Write(0x0008,x%10);
x= dem1/10;
EEPROM_Write(0x0009,x%10);
EEPROM_Write(0x0010,dem1%10);
}
/*xxxxxxxxxxxxxxxxxxxxxxx */
void vrite_dem2()
{ char x;
x= dem2/1000;
EEPROM_Write(0x100,x);
x= dem2/100;
EEPROM_Write(0x101,x%10);
x= dem2/10;
EEPROM_Write(0x102,x%10);
EEPROM_Write(0x103,dem2%10);
}
/*hhhhhhhhhhhhhhhhhhhhhhhh*/
void vrite_dem3()
{ char x;
EEPROM_Write(0x0000,dem3/100);
x= dem3/10;
EEPROM_Write(0x0001,x%10);
EEPROM_Write(0x0002,dem3%10);
}
///////////// READ ////
dem2 = 0;
for(j=0;j<4;j++)
{dem2 = dem2*10 + EEPROM_Read(0x100+j); }
dem1 = 0;
for(j=0;j<4;j++)
{dem1 = dem1*10 + EEPROM_Read(0x0007+j); }
dem3 = 0;
for(j=0;j<3;j++)
{dem3 = dem3*10 + EEPROM_Read(0x0000+j); }
dk = 1;
Comment