找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 7702|回復(fù): 5
收起左側(cè)

最詭異的鐵電數(shù)據(jù)讀寫(xiě)FM24C64B,折磨了三晚還沒(méi)解決

[復(fù)制鏈接]
ID:68618 發(fā)表于 2014-11-22 14:46 | 顯示全部樓層 |閱讀模式
一開(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)始就要不行的,


回復(fù)

使用道具 舉報(bào)

ID:19715 發(fā)表于 2014-11-27 21:59 | 顯示全部樓層
主程序安排有錯(cuò)誤嗎
回復(fù)

使用道具 舉報(bào)

ID:399111 發(fā)表于 2021-6-19 16:32 | 顯示全部樓層
沒(méi)什么詭異的,寫(xiě)程序方法對(duì)了,就OK,,,
回復(fù)

使用道具 舉報(bào)

ID:399111 發(fā)表于 2021-7-9 14:43 | 顯示全部樓層
FM鐵電沒(méi)有那些人說(shuō)的那么牛,多少有些不如意的地方,,你這一看就是沒(méi)理解鐵電讀寫(xiě)規(guī)律,并不是你想寫(xiě)想讀就能正確的,
回復(fù)

使用道具 舉報(bào)

ID:395741 發(fā)表于 2021-7-11 19:56 | 顯示全部樓層
沒(méi)有什么問(wèn)題
回復(fù)

使用道具 舉報(bào)

ID:23640 發(fā)表于 2021-9-28 17:32 | 顯示全部樓層
是不是要按字讀寫(xiě),不能按字節(jié)讀寫(xiě)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表