Здравствуйте!
Делаю устройство на SIM800C с применением EAT. SIM800C управляет нагрузкой. И вот вылезла проблемка - у SIM800C при старте модуля некоторое время до инициализации ноги становятся в единицу и включают нагрузку. Причем время включения довольно существенное - секунды 3-4. Как это можно побороть?
Инициализирую выходы как в примерах:
Код
void app_func_ext1(void *data)
{
/*This function can be called before Task running ,configure the GPIO,uart and etc.
Only these api can be used:
eat_uart_set_debug: set debug port
eat_pin_set_mode: set GPIO mode
eat_uart_set_at_port: set AT port
*/
eat_uart_set_debug(EAT_UART_USB);
// eat_uart_set_at_port(EAT_UART_USB);
eat_sim_detect_en(EAT_FALSE);
eat_pin_set_mode(EAT_PIN3_UART1_RTS, EAT_PIN_MODE_GPIO);
eat_pin_set_mode(EAT_PIN4_UART1_CTS, EAT_PIN_MODE_GPIO);
eat_pin_set_mode(EAT_PIN5_UART1_DCD, EAT_PIN_MODE_GPIO);
eat_pin_set_mode(EAT_PIN6_UART1_DTR, EAT_PIN_MODE_EINT);
eat_pin_set_mode(EAT_PIN7_UART1_RI, EAT_PIN_MODE_GPIO);
eat_pin_set_mode(EAT_PIN14_SIM_DET, EAT_PIN_MODE_EINT);
eat_pin_set_mode(EAT_PIN42_STATUS, EAT_PIN_MODE_GPIO);
eat_pin_set_mode(EAT_PIN1_UART1_TXD, EAT_PIN_MODE_GPIO);
eat_pin_set_mode(EAT_PIN2_UART1_RXD, EAT_PIN_MODE_GPIO);
eat_pin_set_mode(EAT_PIN7_UART1_RI, EAT_PIN_MODE_GPIO);
}
а затем в main перевожу в 0:
Код
void app_main(void *data)
{
EatEvent_st event;
EatUartConfig_st uart_config;
int len = 0;
EatEntryPara_st *para;
APP_InitRegions();//Init app RAM, first step
APP_init_clib(); //C library initialize, second step
para = (EatEntryPara_st*)data;
memcpy(&app_para, para, sizeof(EatEntryPara_st));
eat_trace(" App Main ENTRY update:%d result:%d", app_para.is_update_app,app_para.update_app_result);
if(app_para.is_update_app && app_para.update_app_result)
{
eat_update_app_ok();
}
eat_gpio_setup(EAT_PIN3_UART1_RTS, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW);
eat_gpio_setup(EAT_PIN4_UART1_CTS, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW);
eat_gpio_setup(EAT_PIN5_UART1_DCD, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW);
eat_gpio_setup(EAT_PIN6_UART1_DTR, EAT_GPIO_DIR_INPUT, EAT_GPIO_LEVEL_LOW);
eat_gpio_setup(EAT_PIN7_UART1_RI, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW);
eat_gpio_setup(EAT_PIN14_SIM_DET, EAT_GPIO_DIR_INPUT, EAT_GPIO_LEVEL_LOW);
eat_gpio_setup(EAT_PIN42_STATUS, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW);
eat_gpio_setup(EAT_PIN1_UART1_TXD, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW);
eat_gpio_setup(EAT_PIN2_UART1_RXD, EAT_GPIO_DIR_INPUT, EAT_GPIO_LEVEL_LOW);
eat_gpio_setup(EAT_PIN7_UART1_RI, EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW);
eat_gpio_write(OUT1, EAT_GPIO_LEVEL_LOW);
eat_gpio_write(GPS_ON, EAT_GPIO_LEVEL_LOW);
eat_gpio_write(GPS_RESET, EAT_GPIO_LEVEL_LOW);
eat_gpio_write(LED_FX, EAT_GPIO_LEVEL_LOW);
eat_gpio_write(LED_ER, EAT_GPIO_LEVEL_LOW);
Спасибо!