代码暂存 按键第一次按下显示当前状态,第二次再改变电机状态
This commit is contained in:
parent
a68193b154
commit
4a3e00f133
|
@ -715,11 +715,9 @@ static void peripheralStateNotificationCB(gapRole_States_t newState, gapRoleEven
|
|||
*/
|
||||
static void performPeriodicTask(void)
|
||||
{
|
||||
// ??????
|
||||
gValveData.bat = BSP_ReadVbat();
|
||||
if (gValveData.bat <= LOW_VABAT_CLOSE_VALUE)
|
||||
{
|
||||
gValveData.switch_status = kClosed;
|
||||
tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT);
|
||||
}
|
||||
else if (gValveData.bat <= LOW_VABAT_ALARM_VALUE)
|
||||
|
|
|
@ -103,7 +103,6 @@ int main(void)
|
|||
MultiTimerInstall((PlatformTicksFunction_t)BSP_Get_Tick);
|
||||
BSP_KEY_Init(app_task_handler);
|
||||
|
||||
// BSP_MOTOR_Init();
|
||||
BSP_VAVLE_Init();
|
||||
|
||||
BSP_LED_Init();
|
||||
|
@ -111,8 +110,8 @@ int main(void)
|
|||
BSP_VBAT_Init();
|
||||
logDebug("VBAT init ok\n");
|
||||
|
||||
BSP_Ml307r_Init();
|
||||
logDebug("BSP_M1307r ok\n");
|
||||
// BSP_Ml307r_Init();
|
||||
// logDebug("BSP_M1307r ok\n");
|
||||
|
||||
ShowRestartReason();
|
||||
IWDG_Init(5000);
|
||||
|
|
12
README.md
12
README.md
|
@ -1,3 +1,9 @@
|
|||
1.电机停止需判断COIL_ADC优化
|
||||
2.低电压判断及后续处理
|
||||
3.暂时屏蔽4G
|
||||
1.按键第一次按下显示当前状态,第二次再改变电机状态
|
||||
2.蓝牙连接成功及断开显示
|
||||
3.json格式优化
|
||||
4.服务器对接测试
|
||||
|
||||
5.气压传感器数值测试
|
||||
6.低功耗优化
|
||||
7.电机停止需判断COIL_ADC优化
|
||||
8.低电压判断及后续处理
|
||||
|
|
|
@ -9,11 +9,12 @@
|
|||
#define KEY_TIMOUT_MS 1000
|
||||
#define KEY_LONG_PRESS_MS 5000
|
||||
#define KEY_SACN_MS 40
|
||||
#define KEY_IDLE_TIMEOUT_MS 10000
|
||||
|
||||
#define KEY_SCAN_EVT (0x0001 << 0)
|
||||
#define KEY_WAKEUP_EVT (0x0001 << 1)
|
||||
#define KEY_RELEASE_EVT (0x0001 << 2)
|
||||
#define KEY_IDLE_TIMEOUT_EVT (0x0001 << 2)
|
||||
#define KEY_IDLE_TIMEOUT_EVT (0x0001 << 3)
|
||||
|
||||
// KEY_B_PIN at PB7,low->active
|
||||
#define KEY_A_PIN GPIO_Pin_7
|
||||
|
|
|
@ -765,7 +765,6 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
if(motor_flag == 1)
|
||||
{
|
||||
motor_flag = 0;
|
||||
gValveData.switch_status = kOpened;
|
||||
LED_VALVE_OPEN;
|
||||
VALVE_OPEN();
|
||||
// DelayMs(1000);
|
||||
|
@ -784,6 +783,18 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
logDebug("motor/LED close!!!");
|
||||
tmos_start_task(check_task_id, MOTOR_STOP_EVT, MS1_TO_SYSTEM_TIME(CHARGE_TIME_MS));
|
||||
}
|
||||
else if(motor_flag == 3)
|
||||
{
|
||||
motor_flag = 0;
|
||||
if(gValveData.switch_status == kOpened)
|
||||
{
|
||||
LED_VALVE_OPEN;
|
||||
}else
|
||||
{
|
||||
LED_VALVE_CLOSE;
|
||||
}
|
||||
// DelayMs(500);
|
||||
}
|
||||
tmos_start_task(check_task_id, CHECK_EVT_START, MS1_TO_SYSTEM_TIME(200)); //100
|
||||
return (events ^ CHECK_EVT_START);
|
||||
}
|
||||
|
@ -791,12 +802,12 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
{
|
||||
VALVE_STOP();
|
||||
logDebug("motor STOP");
|
||||
DelayMs(1500);
|
||||
if(fault_state == 4)
|
||||
{
|
||||
IotFlag_t.Valve_Close_flag = 1;
|
||||
Iot_Send_Data();
|
||||
}
|
||||
// DelayMs(1500);
|
||||
// if(fault_state == 4)
|
||||
// {
|
||||
// IotFlag_t.Valve_Close_flag = 1;
|
||||
// Iot_Send_Data();
|
||||
// }
|
||||
return (events ^ MOTOR_STOP_EVT);
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include "bsp_ml307r.h"
|
||||
#include "log.h"
|
||||
#include "SLEEP.h"
|
||||
#include "bsp_valve.h"
|
||||
|
||||
// https://www.cnblogs.com/iot-fan/p/14304943.html
|
||||
|
||||
|
@ -19,6 +20,7 @@ tmosTaskID key_task_id = INVALID_TASK_ID;
|
|||
|
||||
volatile uint8_t key_wakeup_flag = 0;
|
||||
volatile uint8_t key_timeout_flag = 0;
|
||||
volatile uint8_t press_count = 0;
|
||||
|
||||
static app_task_evt_handler_t p_handler = NULL;
|
||||
|
||||
|
@ -142,7 +144,11 @@ static uint16_t KEY_Task_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
}
|
||||
return (events ^ KEY_SCAN_EVT);
|
||||
}
|
||||
|
||||
if (events & KEY_IDLE_TIMEOUT_EVT)
|
||||
{
|
||||
press_count = 0;
|
||||
return (events ^ KEY_IDLE_TIMEOUT_EVT);
|
||||
}
|
||||
// Discard unknown events
|
||||
return 0;
|
||||
}
|
||||
|
@ -319,42 +325,47 @@ __HIGH_CODE
|
|||
__attribute__((noinline))
|
||||
void KEY_ProcessLoop(void)
|
||||
{
|
||||
static uint8_t key_flag = 0;
|
||||
// {
|
||||
// if (R16_PB_INT_IF & KEY_B_PIN)
|
||||
// {
|
||||
// R16_PB_INT_IF = KEY_B_PIN;
|
||||
// tmos_set_event(key_task_id, KEY_SCAN_EVT);
|
||||
// logDebug("KEY_ProcessLoop");
|
||||
// }
|
||||
// }
|
||||
// static uint8_t key_flag = 0;
|
||||
|
||||
if (key_wakeup_flag)
|
||||
{
|
||||
key_wakeup_flag = 0;
|
||||
key_flag = !key_flag;
|
||||
if(key_flag)
|
||||
press_count++;
|
||||
|
||||
if (press_count == 1)
|
||||
{
|
||||
motor_flag = 1;
|
||||
logDebug("motor open");
|
||||
}
|
||||
else {
|
||||
motor_flag = 2;
|
||||
logDebug("motor close");
|
||||
motor_flag = 3;
|
||||
logDebug("motor_flag_start = %d",motor_flag);
|
||||
tmos_start_task(key_task_id, KEY_IDLE_TIMEOUT_EVT, MS1_TO_SYSTEM_TIME(KEY_IDLE_TIMEOUT_MS));
|
||||
}
|
||||
else if (press_count >= 2)
|
||||
{
|
||||
tmos_start_task(key_task_id, KEY_IDLE_TIMEOUT_EVT, MS1_TO_SYSTEM_TIME(KEY_IDLE_TIMEOUT_MS));
|
||||
if(gValveData.switch_status == kClosed)
|
||||
{
|
||||
motor_flag = 1;
|
||||
logDebug("motor open");
|
||||
}else
|
||||
{
|
||||
motor_flag = 2;
|
||||
logDebug("motor close");
|
||||
}
|
||||
// key_flag = !key_flag;
|
||||
// if(key_flag)
|
||||
// {
|
||||
// motor_flag = 1;
|
||||
// logDebug("motor open");
|
||||
// }
|
||||
// else {
|
||||
// motor_flag = 2;
|
||||
// logDebug("motor close");
|
||||
// }
|
||||
// press_count = 0;
|
||||
}
|
||||
|
||||
tmos_set_event(key_task_id, KEY_SCAN_EVT);
|
||||
logDebug("KEY_ProcessLoop");
|
||||
}
|
||||
|
||||
// if (key_wakeup_flag)
|
||||
// {
|
||||
// key_wakeup_flag = 0;
|
||||
// tmos_set_event(key_task_id, KEY_SCAN_EVT);
|
||||
// // tmos_start_task(key_task_id, KEY_SCAN_EVT, MS1_TO_SYSTEM_TIME(20));
|
||||
// // tmos_start_task(key_task_id, KEY_IDLE_TIMEOUT_EVT, MS1_TO_SYSTEM_TIME(1000 * 10));
|
||||
// logDebug("key_wakeup_flag");
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -153,10 +153,12 @@ void StopTask_CallBack(MultiTimer* timer, void* userData)
|
|||
{
|
||||
IotFlag_t.PowerOn_error_flag = 0;
|
||||
tmos_stop_task(ml307_task_id, ML307_PERIODIC_EVT);
|
||||
PFIC_DisableIRQ(UART1_IRQn);
|
||||
BSP_RequestSleep();
|
||||
}else{
|
||||
// BSP_Ml307_Power_Off(); //¹Ø»ú
|
||||
tmos_stop_task(ml307_task_id, ML307_PERIODIC_EVT);
|
||||
PFIC_DisableIRQ(UART1_IRQn);
|
||||
BSP_RequestSleep();
|
||||
}
|
||||
IotFlag_t.Date_Sending_flag = 0;
|
||||
|
@ -519,7 +521,7 @@ static int BSP_Module_Connect_CtWing_Handle(at_env_t *e)
|
|||
{
|
||||
case 0:
|
||||
logDebug("create device...\r\n");
|
||||
e->println(e, "AT+MIPOPEN=0,\"TCP\",\"112.125.89.8\",45663,,1"); // 8.135.10.183,32994
|
||||
e->println(e, "AT+MIPOPEN=0,\"TCP\",\"112.125.89.8\",42286,,1"); // 8.135.10.183,32994
|
||||
e->reset_timer(e);
|
||||
e->state++;
|
||||
break;
|
||||
|
|
|
@ -5,13 +5,14 @@
|
|||
* Author: 123
|
||||
*/
|
||||
#include "bsp_motor.h"
|
||||
#include "bsp_valve.h"
|
||||
|
||||
//uint8_t motor_state = 0;
|
||||
valve_state valve_status = {0};
|
||||
void BSP_MOTOR_Init(void)
|
||||
{
|
||||
GPIOA_ResetBits(COIL_ADC);
|
||||
GPIOA_ModeCfg(COIL_ADC, GPIO_ModeOut_PP_5mA);
|
||||
// GPIOA_ResetBits(COIL_ADC);
|
||||
// GPIOA_ModeCfg(COIL_ADC, GPIO_ModeOut_PP_5mA);
|
||||
|
||||
GPIOB_ResetBits(COIL_A);
|
||||
GPIOB_ModeCfg(COIL_A, GPIO_ModeOut_PP_5mA);
|
||||
|
@ -23,25 +24,27 @@ void BSP_MOTOR_Init(void)
|
|||
}
|
||||
void VALVE_OPEN(void)
|
||||
{
|
||||
GPIOA_SetBits(COIL_ADC);
|
||||
// GPIOA_SetBits(COIL_ADC);
|
||||
//IN1 + ; IN2 -
|
||||
GPIOB_SetBits(COIL_A);
|
||||
GPIOB_ResetBits(COIL_B);
|
||||
valve_status.motor_state = 1;
|
||||
gValveData.switch_status = kOpened;
|
||||
}
|
||||
|
||||
void VALVE_CLOSE(void)
|
||||
{
|
||||
GPIOA_SetBits(COIL_ADC);
|
||||
// GPIOA_SetBits(COIL_ADC);
|
||||
//IN1 - ; IN2 +
|
||||
GPIOB_ResetBits(COIL_A);
|
||||
GPIOB_SetBits(COIL_B);
|
||||
valve_status.motor_state = 0;
|
||||
gValveData.switch_status = kClosed;
|
||||
}
|
||||
|
||||
void VALVE_STOP(void)
|
||||
{
|
||||
GPIOA_ResetBits(COIL_ADC);
|
||||
// GPIOA_ResetBits(COIL_ADC);
|
||||
//IN1 + ; IN2 +
|
||||
GPIOB_SetBits(COIL_A);
|
||||
GPIOB_SetBits(COIL_B);
|
||||
|
|
|
@ -282,11 +282,8 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
|
|||
if (events & VAVLE_CLOSE_END_EVT) // 阀门关闭结束事件
|
||||
{
|
||||
VALVE_STOP();
|
||||
|
||||
LED_ALL_CLOSE;
|
||||
|
||||
gValveData.switch_status = kClosed;
|
||||
|
||||
tmos_memset(&RelyData, 0, sizeof(RelyData));
|
||||
BSP_VALVE_Generate_ValveResponse(&RelyData, kCmdCloseVavle, 1);
|
||||
|
||||
|
@ -331,11 +328,8 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
|
|||
if (events & VAVLE_OPEN_END_EVT) // 阀门打开结束事件
|
||||
{
|
||||
VALVE_STOP();
|
||||
|
||||
LED_ALL_CLOSE;
|
||||
|
||||
gValveData.switch_status = kOpened;
|
||||
|
||||
tmos_memset(&RelyData, 0, sizeof(RelyData));
|
||||
BSP_VALVE_Generate_ValveResponse(&RelyData, kCmdOpenVavle, 1);
|
||||
|
||||
|
@ -415,10 +409,8 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
|
|||
void BSP_VAVLE_Init(void) // 阀门初始化函数
|
||||
{
|
||||
vavle_task_id = TMOS_ProcessEventRegister(VAVLE_Task_ProcessEvent);
|
||||
|
||||
tmos_memset(&gValveData, 0, sizeof(gValveData));
|
||||
|
||||
gValveData.switch_status = kClosed; // 设置阀门状态为关闭
|
||||
gValveData.temp = -100;
|
||||
gValveData.in_pressure = 0;
|
||||
gValveData.out_pressure = 0;
|
||||
|
|
Loading…
Reference in New Issue