sf

eeprom.cpp

Committer:
floatlei
Date:
2016-09-27
Revision:
0:b71fbcf5b8e4

File content as of revision 0:b71fbcf5b8e4:

#include "eeprom.h"


Eeprom::Eeprom()
{
    
}


unsigned int Eeprom::eeprom_countor_read(void)
{
    unsigned int eeproma,eepromshuil;
    
    for(eeproma=0;eeproma<9;eeproma++)
    {
        if(EEPROM_VALUE_SHUILIANGDECIMAL(eeproma)!=EEPROM_MARK_SHUILDECIMAL)      
            break;
    }
    
    eepromshuil=EEPROM_VALUE_SHUILIANGMAIN;
    eepromshuil+=eeproma;
    
    return (unsigned short)eepromshuil;
}


unsigned int Eeprom::eeprom_countor_write(unsigned int watervalue)
{
    unsigned int eepromb;
    
    /*
    /FLASH_ErasePage(EEPROM_ADDR_PAGE0);
    FLASH_ErasePage(EEPROM_ADDR_PAGE1); 
    FLASH_ErasePage(EEPROM_ADDR_SHUILIANGMAIN);
    
    HAL_FLASH_Program(1, EEPROM_ADDR_SHUILIANGMAIN, eepromshuil);
    */
        
    return eepromb;
}

unsigned int Eeprom::eeprom_countor_addone(void)
{
    unsigned int eepromb,eeproma,eepromshuil;
    
    __disable_irq();
    
    eepromb=HAL_FLASH_Unlock();
    
    for(eeproma=0;eeproma<10;eeproma++)
    {
        if(EEPROM_VALUE_SHUILIANGDECIMAL(eeproma)!=EEPROM_MARK_SHUILDECIMAL)      
            break;  

    }
    //pc.printf("eeproma=%d\n",eeproma);
       
    if(eeproma>8)
    {
        eepromshuil=EEPROM_VALUE_SHUILIANGMAIN;
        eepromshuil+=10;
             
        for(eepromb=0;eepromb<9;eepromb++)
        {
            HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, EEPROM_ADDR_PAGE1+4*eepromb, 0);
            wait(0.02);
        }
        
        eepromb=HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, EEPROM_ADDR_SHUILIANGMAIN, 0);
        wait(0.02);
        eepromb=HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, EEPROM_ADDR_SHUILIANGMAIN, eepromshuil);
        wait(0.02);
    }
    else
    {
        eepromb=HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, EEPROM_ADDR_SHUILIANGDECIMAL+eeproma*4, EEPROM_MARK_SHUILDECIMAL);    
        wait(0.02);
    }
                
    eepromb=HAL_FLASH_Lock();
    
    __enable_irq();
    
    return eepromb;
}