會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





pic16f883 eeprom紀錄
新會員
註冊日期:
2012/07/19 02:31
所屬群組:
註冊會員
文章: 16
等級: 2; EXP: 74
HP : 0 / 43
MP : 5 / 775
離線
目前要使用pic16f883
要記錄單晶片開機次數由LCD顯示
那eeprom鑽寫程式流程該如何下手使用hi-tech
是否有範例程式參考?

6月09日 22:51:42
轉換PDF檔 列印


Re: pic16f883 eeprom紀錄
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14432
等級: 72; EXP: 95
HP : 1079 / 1798
MP : 4810 / 75151
離線
參考一下教育訓練的 W301或 XC8T 的教育訓練,裡面有寫要怎麼用內部的 EEPROM 的用法。

6月10日 21:26:39
轉換PDF檔 列印


Re: pic16f883 eeprom紀錄
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14432
等級: 72; EXP: 95
HP : 1079 / 1798
MP : 4810 / 75151
離線
查了一下 Hi-Tech PICC 的 Internal EEPROM 的用法,如下:
(HI-TECH C® for PIC10/12/16 User’s Guide)



For those PIC10/12/16 devices that support external programming of their EEPROM
data area
, the __EEPROM_DATA() macro can be used to place the initial EEPROM
data values into the HEX file ready
for programming. The macro is used as follows.
#include <htc.h>
__EEPROM_DATA(0, 1, 2, 3, 4, 5, 6, 7);

The library functions eeprom_read() and eeprom_write(), can be called to read
from
, and write to, the EEPROM during program execution. For example, to write a
byte
-size value to an address in EEPROM and retrieve it using these functions would
be
:
#include <htc.h>
void eetest(void) {
unsigned char value = 1;
unsigned char address = 0;
// write value to EEPROM address
eeprom_write(address, value);
// read from EEPROM at address
value = eeprom_read(address);
}


Be aware that if a program contains multiple instances of either macro, any code space
saving will be negated
as the full content of the macro is now duplicated in code space.
In the case of EEPROM_READ(), there is another very important detail to note. Unlike
eeprom_read
(), this macro does not wait for any concurrent EEPROM writes to complete
before proceeding to select
and read EEPROM. Had the previous example used
the EEPROM_READ
() macro in place of eeprom_read() the operation would have
failed
. If it cannot be guaranteed that all writes to EEPROM have completed at the time
of calling EEPROM_READ
(), the appropriate flag should be polled prior to executing
EEPROM_READ
().
For
example:
#include <htc.h>
void eetest(void){
unsigned char value = 1;
unsigned char address = 0;
// Initiate writing value to address
EEPROM_WRITE(address,value);
// wait for end-of-write before EEPROM_READ
while(WR)
continue;
// read from EEPROM at address
value = EEPROM_READ(address);
}

附加檔案:



jpg  擷取.JPG (120.31 KB)
16_5b1dd2b184f50.jpg 901X675 px

6月11日 09:38:19
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
2018 Winter Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project