[英]How to save values to PIC18?
我想將一些值存儲到PIC18,然后保留這些值,即使斷電或設備復位也是如此。 我想保存的值的一個例子就是那些4位數,0100。
任何幫助,將不勝感激!
更新 :這是要走的路嗎?
unsigned char value;
unsigned char DEEdata = 0x25;
unsigned int DEEaddr = 0x04;
DataEEInit();
dataEEFlags.val = 0;
DataEEWrite(DEEdata,DEEaddr);
value = DataEERead(DEEaddr);
Nop();
在mikroc_for_PIC IDE中,您可以使用:
EEPROM_write(_Addres炭); char = EEPROM_Read(_Addres);
請注意:寫入后最好是延遲大約20 ms。
PIC微控制器中的EEPROM可以長時間保存數據。 PIC16F84可以存儲64個字節。 它不是那么多,但它可以滿足你的目的。 有關如何在PIC16中寫入和讀取EEPROM的詳細說明,請參見此鏈接。
http://www.romux.com/tutorials/pic-tutorial/eeprom-data-memory
如果您使用HIGH-TECH
作為編譯器,您可以使用以下功能簡單地寫入和讀取EEPROM
(這是除掉FARM IC之后保持功率值的唯一方法):
Write_b_eep
Read_b_eep
如果你安裝HIGH-TECH
你可以從下面的目錄中找到這些功能:
...\HI-TECH Software\PICC-18\9.80\sources\plib\EEP
將數據寫入EE需要幾毫秒。 如果你看看https://en.wikipedia.org/wiki/EEPROM,它會解釋擦除和寫入的電氣和物理過程,並給出0.1到5mS之間的時間來實現這一目標。 寫入或找到微秒延遲例程(提示定時器對此有利)將代碼更改為
unsigned char value;
unsigned char DEEdata = 0x25;
unsigned int DEEaddr = 0x04;
DataEEInit();
dataEEFlags.val = 0;
DataEEWrite(DEEdata,DEEaddr);
wait_us(5000); // Wait 5mS.... data takes a while to burn into EE
value = DataEERead(DEEaddr); // now its available to read
EEPROM寫入功能有點“火上澆油”。 你命令它寫,然后在后台繼續它。 如果您在寫作后讀得太快,則無法保證您可能期望的價值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.