Преглед на файлове

新程序解决IIC页写入问题。

liyi преди 1 година
родител
ревизия
671bd248c6

+ 6 - 2
truing_control/PDU-AC_ADA_NEW_6/hardware/eeprom/eeprom.c

@@ -83,6 +83,7 @@ void eeprom_init(void)
 	board->check_threshold = check_threshold;
 	board->read_eeprom_page = eeprom_auto_page_read;
 	board->write_eeprom_page = eeprom_auto_page_write;
+	
 }
 
 
@@ -137,6 +138,7 @@ static void iic_stop_signal(void)
 	IIC_SDA_CLR;
 	DelayNus(4);
 	IIC_SCL_SET;
+	DelayNus(4);
 	IIC_SDA_SET;
 	DelayNus(4);
 }
@@ -446,9 +448,9 @@ static uint8_t eeprom_page_read(uint16_t addr,uint8_t *data,uint16_t lenth)
 	}
 	
 	iic_stop_signal();
-	
 	return 0;
 failed:
+	iic_stop_signal();
 	return 1;	
 }
 
@@ -486,6 +488,7 @@ static uint8_t eeprom_write_page(uint16_t addr,uint8_t *data,uint16_t chuank)
 	
 	return 0;
 failed:
+	iic_stop_signal();
 	return 1;
 }
 
@@ -536,4 +539,5 @@ static void eeprom_auto_page_read(uint16_t addr,uint8_t *data,uint16_t lenth)
         p += chunk;
         remaining -= chunk;
     }
-}
+}
+

+ 2 - 2
truing_control/PDU-AC_ADA_NEW_6/user/board_cfg.h

@@ -55,8 +55,8 @@
 #define   PRJ_3_4                   0
 #define   PRJ_3_2                   0
 #define 	PRJ_DC_8									0
-#define   PRJ_6_NEW                 0
-#define   PRJ_3_NEW                 1
+#define   PRJ_6_NEW                 1
+#define   PRJ_3_NEW                 0
 #define 	PRJ_5_NEW									0
 #define 	PRJ_4_SELF_LOCK       	  0
 #define   PRJ_4_BASE                0

+ 4 - 4
truing_control/PDU-AC_ADA_NEW_6/user/main.c

@@ -44,8 +44,8 @@ static void app_init(META_DATA_S *meta);
 
 int main(){
 	
+	ac_board.md_data.r_data.dev_chn =  ACSingCurrid << 8 | RelaySlaveChaNum;
 	InitSysTick();
-
 	led_init();
 	lock_init();
 	detection_init();
@@ -53,19 +53,19 @@ int main(){
 	relay_init();
 	haddr_init();
 	eeprom_init();
+	read_config_from_eeprom();
 	electricity_init();
 	time_init();
 	query_init();
-
+	
 	//device
-	read_config_from_eeprom();
 	
 	fwdgt_Init();
 	eMBInit(MB_RTU, ac_board.haddr, 0, 115200, MB_PAR_NONE);
 	eMBEnable();
 	
 	
-	ac_board.md_data.r_data.dev_chn =   ACSingCurrid << 8 | RelaySlaveChaNum;
+	
 	ac_board.md_data.r_data.info.channels = RelaySlaveChaNum;
 	strcpy((char*)&(ac_board.md_data.r_data.info.date),__DATE__);
 	strcat((char*)&(ac_board.md_data.r_data.info.date)," ");