簡體   English   中英

如何將值保存到PIC18?

[英]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個字節。 它不是那么多,但它可以滿足你的目的。 有關如何在PIC​​16中寫入和讀取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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM