• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users






Re: EEPROM最大值問題
#6
資深會員
資深會員


查看用戶資訊
假設這顆EEP有256 BYTES(我沒看Datasheet所以不知道容量)

又假設您已經寫好將值寫入/讀出EEP的函式如下:
extern void eep_write(unsigned char addr, unsigned char *data, unsigned int data_len);
extern void eep_read(unsigned char addr, unsigned char *data, unsigned int data_len);

其中 addr:要寫入/讀出資料的位址
*data:存放寫入/讀出資料的空間
len:要寫入/讀出的資料長度

假設您要存的資料有:

unsigned long long_data;//4bytes
unsigned int int_data;//2bytes
unsigned char byte_data;//1bytes
float float_data;//2bytes

eep 的規畫是:

addr 0 ~ 3存long_data
addr 4 ~ 5存int_data
addr 6 ~ 9存float_data
addr 10 存byte_data

將資料存入:
eep_write(0, (unsigned char *)&long_data, sizeof(long));
eep_write(4, (unsigned char *)&int_data, sizeof(int));
eep_write(6, (unsigned char *)&float_data, sizeof(float));
eep_write(10, &char_data, 1);

將資料讀出:
eep_read(0, (unsigned char *)&long_data, sizeof(long));
eep_read(4, (unsigned char *)&int_data, sizeof(int));
eep_read(6, (unsigned char *)&float_data, sizeof(float));
eep_read(10, &char_data, 1);

綜合以上,其實跟eep的最小儲存單位(byte)是沒關系的。我記得Microchip有的eep的最小儲存單位是2bytes,其實用法也差不多,重要的還是您怎麼去規畫。

例如以最小單位為1byte的eep來說,您可以將一個您定義的整個struct直接寫入到eep裡(只要eep容量夠)

//定義
typedef struct{
unsigned long a;
unsigned char b;
float c;
double d;
}struct_a;

//宣告
struct_a a;

eep_write(0, (unsigned char *)&a, sizeof(struct_a));//這樣就可以直接將全部的值寫到eep裡了,根本不需要去煩惱資料型態的問題。




參照:

jnmoonwind 寫道:
25LC160A看DATE SHEET 為8 bit是否最大值只能255值

有辦法,可以存更大嗎?

是有想說過要用除的再乘回去但除法都只能留商值

是否有辦法能存到更大值呢?謝謝

發表於: 2009/10/7 10:30
我相信解決問題的方法不只一種,所以我在回答同好的問題時或者提出與主題不同的方案,
請不要以此做為攻擊的目標,畢竟我也只是想和大家討論如何解決問題而已…
解決問題最重要,.....
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: EEPROM最大值問題
#5
版主
版主


查看用戶資訊
你是用 C 寫吧!
可以用 union 的方式來拆解資料;
union
{
long l;
char c[4];
} temp;

將 32-bit 的資料拆成 4 個 Bytes 的資料後這樣就可以分別存到 EEPROM 裡,反過來也可以合併。

或使用指標也可以將大數的值拆成好幾個Byte 後處理。

ptr= & l;
byte1= *ptr++;
byte2=*ptr++;
:
:

發表於: 2009/10/7 9:59
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: EEPROM最大值問題
#4
資深會員
資深會員


查看用戶資訊
HighByte = X / 256;
LowByte = X % 256;

發表於: 2009/10/7 8:54
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: EEPROM最大值問題
#3
初級會員
初級會員


查看用戶資訊
請問一下..

有什範例可以參考一下嗎?

不太懂怎麼分成兩個Byte來存..

謝謝..

發表於: 2009/10/6 19:45
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: EEPROM最大值問題
#2
資深會員
資深會員


查看用戶資訊
參照:

jnmoonwind 寫道:
25LC160A看DATE SHEET 為8 bit是否最大值只能255值
-->是
有辦法,可以存更大嗎?
-->有
是有想說過要用除的再乘回去但除法都只能留商值

是否有辦法能存到更大值呢?謝謝


把數值分兩個Byte來存,值域範圍0~65535
把數值分三個Byte來存,值域範圍0~16777215
...以此類推

發表於: 2009/9/29 8:57
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


EEPROM最大值問題
#1
初級會員
初級會員


查看用戶資訊
25LC160A看DATE SHEET 為8 bit是否最大值只能255值

有辦法,可以存更大嗎?

是有想說過要用除的再乘回去但除法都只能留商值

是否有辦法能存到更大值呢?謝謝

發表於: 2009/9/28 21:24
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------