eeprom.c

来自「This is IR (Infra-Red) learn module for 」· C语言 代码 · 共 46 行

C
46
字号
/*
 *  FILE:
 *     eeprom.c (rev. 1.1 - 14.04.2006)
 *
 *  PROJECT:
 *     IR Learn System 
 *  
 *  DESCRIPTION:
 *     See "eeprom.h" for description
 *     
*/  

#include "AT89C51ED2.h"
#include "eeprom.h"
#include "types.h"

// Write byte to Data EEPROM
#pragma NOAREGS
void EEPROM_Write(U16 addr,U8 val){
    EA=0;                               // Disable interrupts for a while
    EEPROM_Put(val,addr&0xFF,addr>>8);
    EA=1;                               // Enable interrupts
    while (EECON&EEBUSY);
}

// Read byte from Data EEPROM
// Returns: 0 - Ok, 0xFF - Error (Timeout)
#pragma NOAREGS
U8 EEPROM_Read(U16 addr){
    register U8 i;
    EA=0;                               // Disable interrupts for a while
    i=EEPROM_Get(addr&0xFF,addr>>8);
    EA=1;                               // Enable interrupts
    return i;
}

// Initialize EEPROM for first run
void EEPROM_Init(void) {
    register U8 i;
    U16 j;
    i=EEPROM_Read(MAP_FirstMark);
    if (i==FirstMark) return;           // Check first system start
    // Reset whole EEPROM
    for (j=0;j<2048;j++) EEPROM_Write(j,0);    
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?