sf

Revision:
0:b71fbcf5b8e4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eeprom.cpp	Tue Sep 27 09:41:21 2016 +0000
@@ -0,0 +1,85 @@
+#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;
+}
\ No newline at end of file