|
一開(kāi)始懷疑FM24C64和FM24C64B是不是有區(qū)別,但是換了,也還是一個(gè)結(jié)果。
void Box_History_Clear(uchar box)//BOX賦值時(shí)已減1 {
uint add;
uchar i;
uchar clear[7];
for(i=0;i<7;i++)
{
clear = 0;
}
add = BOX_HISTORY_ADD + (unsigned int)box*107;
FRAM_Single_Data_Write(add,0);
add++;
FRAM_Single_Data_Write(add,0);
add++;
for(i=0;i<15;i++)
{
add = add + 7*i;
FRAM_Multi_Data_Write(add,7,&clear[0]);
}
}
對(duì)應(yīng)箱子的存儲(chǔ)片段,能全部擦除清0,讀取后上傳顯示出來(lái)的也都為0,
問(wèn)題來(lái)了,關(guān)于存儲(chǔ)記錄的寫(xiě),特意寫(xiě)的測(cè)試程序,但是明明知道問(wèn)題出在那里,但就是解決不了
void Box_History_Save(uchar box,uchar store_take)
{
//uint add;
uchar recorder_num;
uchar over;
uint x;
uchar i;
x = box-1;
ADD = BOX_HISTORY_ADD + x*107;//其實(shí)地址從0X0400,0X0900等換了好幾個(gè),都沒(méi)用,箱號(hào)也隨機(jī)換了幾個(gè),詭異現(xiàn)象依舊
recorder_num = FRAM_Single_Data_Read(ADD);
over = recorder_num;
recorder_num++;
FRAM_Single_Data_Write(ADD,recorder_num);//記錄的次數(shù),從0,1,2,3.。。。100%順序遞增,也是完全正確的。
ADD = ADD + 2;
if(over==2)
{
LED_RED_ON();第三次時(shí),燈閃了一下,說(shuō)明100%執(zhí)行的
}
/*for(i=0;i<15;i++)//如果連續(xù)寫(xiě)15條7個(gè)連續(xù)字節(jié)的數(shù)據(jù),100%沒(méi)問(wèn)題,讀取出來(lái)的數(shù)據(jù)和想寫(xiě)入的完全符合,
{
ADD = ADD + 7*i;
Open_Time[0] = store_take;
Open_Time[1] = ADD>>8;
Open_Time[2] = ADD;
Open_Time[3] = over;
Open_Time[4] = over;
Open_Time[5] = over;
Open_Time[6] = over;
//add = add + 7*over;
FRAM_Multi_Data_Write(ADD,7,&Open_Time[0]);//如果用單獨(dú)寫(xiě)一個(gè)字節(jié)的子程序,連著寫(xiě)7個(gè)字節(jié),也沒(méi)問(wèn)題,
}*/
ADD = ADD + 7*over;//2013年最詭異的現(xiàn)象出現(xiàn)在這里,OVER=0,OVER=1,讀取出來(lái)后的數(shù)據(jù)與設(shè)想的完全一致,但是OVER
=2時(shí),本來(lái)的那7個(gè)字節(jié)數(shù)據(jù)全部為0了,該記錄的字節(jié)根本沒(méi)有寫(xiě)進(jìn)去,OVER=3時(shí),所記錄的地址ADD
也是符合的,但內(nèi)容卻占據(jù)了本該寫(xiě)在OVER=2時(shí)的那個(gè)位置上,詭異的一B。OVER=4,5,不行,OVER
=6時(shí),所記錄的數(shù)據(jù)覆蓋在OVER=3的那個(gè)位置,但所寫(xiě)入的數(shù)據(jù)內(nèi)容完全正確,無(wú)法解釋這個(gè)詭異現(xiàn)象
Open_Time[0] = store_take;
Open_Time[1] = ADD>>8;
Open_Time[2] = ADD;
Open_Time[3] = over;
Open_Time[4] = over;
Open_Time[5] = over;
Open_Time[6] = over;
FRAM_Multi_Data_Write(ADD,7,&Open_Time[0]);
}
反復(fù)調(diào)整,顛來(lái)倒去的,弄了不下上百遍了,怎么改都無(wú)法解決這個(gè)詭異現(xiàn)象。如果記錄數(shù)據(jù)不行,那一開(kāi)始就要不行的,
|
|