#include "system_run_fun.h"
|
#include "system_eep_mem_manage.h"
|
#include "system_mem_para.h"
|
#include "eeprom.h"
|
#include "mbcrc.h"
|
#include "gpio.h"
|
#include "extern_rtc.h"
|
#include "key.h"
|
#include "lcd_io_api.h"
|
|
|
|
|
|
void allGpioInit(void)
|
{
|
// CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý
|
//
|
|
// InputtIO(UNCAP_DETECTION_PORT,UNCAP_DETECTION_PIN,IN_NORMAL);
|
//
|
|
// Lcd_GPIO_Init();
|
// Measure_IO_Init();
|
// KEY_IO_Init();
|
// Valve_IO_Init();
|
// ADC_LithIO_Init();
|
// ADC_AlkaIO_Init();
|
// Power_IO_Init();
|
// Gprs_IO_Init();
|
// E2p_IO_Init();
|
//
|
// SYS_BST_EN;
|
|
RTC_GPIO_Init();
|
|
Key_GPIO_Init();
|
|
Lcd_GPIO_Init();
|
|
}
|
|
//ËùÓÐÍâÉèÇý¶¯ÅäÖÃ
|
void allPeripheralDriver(void)
|
{
|
|
|
}
|
|
|
|
//Ó²¼þÇý¶¯³õʼ»¯
|
void hardwareDriversInit(void)
|
{
|
//¸÷ÖÖÓ²¼þÍâÉèÇý¶¯³õʼ»¯
|
|
//I0¿ÚÅäÖÃ
|
allGpioInit();
|
|
//¸´Î»Æô¶¯£¬²¿·Ö±ØÒªÍâÉ蹦Äܳõʼ»¯£¬ÐèÒªÓõ½²Å¿ªÆôµÄÍâÉ蹦ÄÜÔÚÖ÷Ñ»·½øÈë֮ǰÆôÓü´¿É
|
// allPeripheralDriver();
|
SPI3_Init(); //EEP-SPI³õʼ»¯
|
}
|
|
|
//ËùÓÐÍⲿÒý½ÅÖжÏÅäÖÃ
|
void allExtiIRQ(void)
|
{
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK);//EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); //EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
GPIO_EXTI_Init( EXT_RTC_INT_PORT, EXT_RTC_INT_PIN, EXTI_FALLING, ENABLE);
|
GPIO_EXTI_Init( KEY1_PORT, KEY1_PIN, EXTI_FALLING, ENABLE);
|
GPIO_EXTI_Init( KEY2_PORT, KEY2_PIN, EXTI_FALLING, ENABLE);
|
GPIO_EXTI_Init( KEY3_PORT, KEY3_PIN, EXTI_FALLING, ENABLE);
|
GPIO_EXTI_Init( KEY4_PORT, KEY4_PIN, EXTI_FALLING, ENABLE);
|
|
|
|
|
/*NVICÖжÏÅäÖÃ*/
|
NVIC_DisableIRQ(GPIO_IRQn);
|
NVIC_SetPriority(GPIO_IRQn,0);//ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(GPIO_IRQn);
|
|
}
|
|
|
|
//´æ´¢µÄ²ÎÊý³õʼ»¯
|
void sysStoredParaInit(void)
|
{
|
SYSTEM_EEP_IDENTIFICATION_T sys_eep_id_A_l={0};
|
SYSTEM_EEP_IDENTIFICATION_T sys_eep_id_B_l={0};
|
uint8_t eep_none_flag = 1; //0´ú±í¿Õ£¬·Ç0´ú±í·Ç¿Õ
|
|
//¶ÁÈ¡²ÎÊý³õʼ»¯ÅäÖñêʶ
|
//Èç¹û±êʶÎÞ·¨Ê¶±ðÔò´ú±í´æ´¢ÐèҪȫ²¿Ð´ÈëĬÈÏÖµ
|
//Èç¹û±êʶʶ±ð³É¹¦´ú±íÒÑÓвÎÊý£¬²ÎÊýÖ±½Ó´Ó´æ´¢ÀïÃæ¶ÁÈ¡
|
EEPROM_MultipleRead((uint8_t *)&sys_eep_id_A_l, SYSTEM_EEP_ID_ADDR, SYSTEM_EEP_IDENTIFICATION_LENGTH);
|
if(sys_eep_id_A_l.eep_para_init_config_id == EEP_PARA_INIT_ID)
|
{
|
eep_none_flag = 1;
|
}else
|
{
|
EEPROM_MultipleRead((uint8_t *)&sys_eep_id_B_l, SYSTEM_EEP_ID_ADDR + PARA_EEP_B_OFFSET_ADDR, SYSTEM_EEP_IDENTIFICATION_LENGTH);
|
if(sys_eep_id_B_l.eep_para_init_config_id == EEP_PARA_INIT_ID)
|
{
|
eep_none_flag = 1;
|
}else
|
{
|
eep_none_flag = 0;
|
}
|
}
|
|
if(eep_none_flag ==0)
|
{
|
//ËùÓвÎÊýÐèÒª³õʼ»¯ÎªÄ¬ÈÏÖµ²¢Ð´ÈëEEPROM
|
allParaDefaultInit();
|
}else
|
{
|
//ËùÓвÎÊýÖ±½Ó´ÓEEPROM¶ÁÈ¡£¬µ«¶ÁÈ¡µÄʱºòÐèÒªÅжÏCRCУÑ飬УÑ鲻ͨ¹ýµÄ¶ÁÈ¡BÇø£¬´íÎóµÄÇøÓòдÈëÕýÈ·Öµ»òÕßĬÈÏÖµ
|
allParaReadFromEep();
|
}
|
|
|
|
//¶Áȡϵͳ²¹¶¡±êʶ
|
//Èç¹û²¹¶¡±êʶÎÞ·¨Ê¶±ð»òÕßСÓÚ²¹¶¡Ê±¼ä£¬ÔòÐèÒª´ò²¹¶¡´¦Àí
|
allParaPatchPro();
|
|
}
|
|
|
//ϵͳÔËÐй¦ÄܲÎÊý³õʼ»¯
|
void sysRunFunParaInit(void)
|
{
|
//¸÷ÖÖ¹¦ÄÜÄ£¿éÔËÐÐËùÐèµÄ²ÎÊý³õʼ»¯
|
|
/****ÍⲿRTCÅäÖü°²ÎÊý³õʼ»¯***********/
|
Set_Rtc_UpdataInterrupt(); //ÉèÖÃRTCΪÃëÖжÏ
|
//¶ÁÈ¡ÍⲿRTCʱ¼ä£¬
|
if(Get_Extern_Rtc_Time(&sys_clockBCD_g) ==FAIL)
|
{
|
//²ÉÓÃ´æ´æ´¢¶ÁÈ¡µÄʱ¼äÉèÖõ½RTC
|
Set_Extern_Rtc_Time(save_realtime_data_g.record_time_BCD.year,save_realtime_data_g.record_time_BCD.month,save_realtime_data_g.record_time_BCD.day, \
|
1,save_realtime_data_g.record_time_BCD.hour,save_realtime_data_g.record_time_BCD.min,save_realtime_data_g.record_time_BCD.sec);
|
}
|
|
//·§ÃÅÔËÐгõʼ»¯
|
ValveRunParaInit();
|
|
|
}
|
|