Browse Source

feature: 1.添加长时间无操作关机功能,默认时间为3min

v4-temp
Zhangwen 3 weeks ago
parent
commit
1e03a466ce
  1. 2
      source/app/app_config.c
  2. 2
      source/app/app_config.h
  3. 36
      source/app/main.h
  4. 31
      source/app/task_appstatus.c
  5. 19
      source/app/task_appstatus.h
  6. 5
      source/app/task_keystatus.c
  7. 2
      source/bsp/bsp_oid.c
  8. 2
      source/bsp/chipid.c

2
source/app/app_config.c

@ -116,6 +116,8 @@ void L3_reg_reset(void)
{ {
U8 i = 0; U8 i = 0;
R.Operate_time = 0;
R.app_status = POW_OFF; R.app_status = POW_OFF;
R.pen_sta = 0; R.pen_sta = 0;

2
source/app/app_config.h

@ -87,6 +87,8 @@ typedef struct global_register
APP_STATUS app_status; APP_STATUS app_status;
U32 Operate_time;
}GlobalRegister; }GlobalRegister;
extern GlobalRegister R; extern GlobalRegister R;

36
source/app/main.h

@ -1,39 +1,3 @@
//////////////////////////////////////////////////////////////////////////
/// COPYRIGHT NOTICE
/// Copyright (c) 2017, 传控科技
/// All rights reserved.
///
/// @file main.c
/// @brief main app
///
///(本文件实现的功能的详述)
///
/// @version 1.1 CCsens technology
/// @author CC
/// @date 20150102
///
///
/// 修订说明:最初版本
/// Modified by:
/// Modified date:
/// Version:
/// Descriptions:
///
///
///
///
///
///
///
/// msp: humtemp flow
/// bsp: i2c adc
///
///
///
///
///
//////////////////////////////////////////////////////////////////////////
#ifndef _MAIN_H #ifndef _MAIN_H
#define _MAIN_H #define _MAIN_H

31
source/app/task_appstatus.c

@ -1,15 +1,3 @@
////////////////////////////////////////////////////////////////////////////
///@copyright Copyright (c) 2018, 传控科技 All rights reserved.
///-------------------------------------------------------------------------
/// @file bsp_drv.c
/// @brief bsp @ driver config
///-------------------------------------------------------------------------
/// @version 1.0
/// @author CC
/// @date 20180331
/// @note cc_AS_stc02
//////////////////////////////////////////////////////////////////////////////
#include "../app/task_appstatus.h" #include "../app/task_appstatus.h"
#include "../bsp/bsp_led.h" #include "../bsp/bsp_led.h"
#include "../bsp/bsp_key.h" #include "../bsp/bsp_key.h"
@ -47,6 +35,12 @@ void L3_task_appstatus_handler(S_TASK_APPSTATUS *s)
L2_task_go(D_task_DETECTCHANGE); L2_task_go(D_task_DETECTCHANGE);
TTSS_Task_step(D_task_DETECTCHANGE) TTSS_Task_step(D_task_DETECTCHANGE)
if (R.app_status != POW_OFF)
{
//低功耗模式判断
PowerOff_judge();
}
if(s->status != R.app_status) if(s->status != R.app_status)
{ {
s->status = R.app_status; s->status = R.app_status;
@ -148,3 +142,16 @@ void L3_task_appstatus_handler(S_TASK_APPSTATUS *s)
TTSS_Task_end(); TTSS_Task_end();
} }
// 无操作进入低功耗模式
void PowerOff_judge()
{
U32 Nowtime = D_sys_now;
if( Nowtime - R.Operate_time > Noperate_Time_Seconds) // 180000/JIFFIES = 180s
{
// R.ScrTouch_flag = 0;
R.app_status = POW_OFF;
L0_uart0_sendstr("R.app_status = POW_OFF!!!");
L0_uart0_0d0a();
}
}

19
source/app/task_appstatus.h

@ -1,16 +1,3 @@
////////////////////////////////////////////////////////////////////////////
///@copyright Copyright (c) 2018, 传控科技 All rights reserved.
///-------------------------------------------------------------------------
/// @file bsp_drv.h
/// @brief bsp @ driver config
///-------------------------------------------------------------------------
/// @version 1.0
/// @author CC
/// @date 20180331
/// @note cc_AS_stc02
//////////////////////////////////////////////////////////////////////////////
#ifndef _TASK_APPSTATUS_H #ifndef _TASK_APPSTATUS_H
#define _TASK_APPSTATUS_H #define _TASK_APPSTATUS_H
@ -18,6 +5,11 @@
#include "../clib/clib.h" #include "../clib/clib.h"
#include "app_config.h" #include "app_config.h"
#define Noperate_Time_MSeconds 180000
#define Noperate_Time_Seconds Noperate_Time_MSeconds/JIFFIES // 180000/JIFFIES = 180s
typedef struct _s_task_appstatus typedef struct _s_task_appstatus
{ {
TS_task task; TS_task task;
@ -27,5 +19,6 @@ typedef struct _s_task_appstatus
extern S_TASK_APPSTATUS _s_task_appstatus; extern S_TASK_APPSTATUS _s_task_appstatus;
extern void L3_task_AppStatus_init(void); extern void L3_task_AppStatus_init(void);
extern void L3_task_appstatus_handler(S_TASK_APPSTATUS *s); extern void L3_task_appstatus_handler(S_TASK_APPSTATUS *s);
extern void PowerOff_judge();
#endif // #ifndef #endif // #ifndef

5
source/app/task_keystatus.c

@ -44,13 +44,14 @@ void L3_task_keystatus_handler(S_TASK_KEYSTATUS *s)
TTSS_Task_step(D_task_KEY_DETECT) TTSS_Task_step(D_task_KEY_DETECT)
if(L2_ReadKey3() == Key_Down) if(L2_ReadKey3() == Key_Down)
{ {
R.Operate_time = D_sys_now;
if (s->Key3_Down_Begin_Time == 0) if (s->Key3_Down_Begin_Time == 0)
{ {
s->Key3_Down_Begin_Time = D_sys_now; s->Key3_Down_Begin_Time = D_sys_now;
} }
else else
{ {
U32 diff = D_sys_now -s->Key3_Down_Begin_Time; U32 diff = D_sys_now - s->Key3_Down_Begin_Time;
// L0_uart0_ulhex(diff); // L0_uart0_ulhex(diff);
if (diff >= LongKey_PWR_MSeconds/JIFFIES && s->Key3_handled == 0) if (diff >= LongKey_PWR_MSeconds/JIFFIES && s->Key3_handled == 0)
{ {
@ -82,6 +83,7 @@ void L3_task_keystatus_handler(S_TASK_KEYSTATUS *s)
} }
else if (L2_ReadKey1() == Key_Down) else if (L2_ReadKey1() == Key_Down)
{ {
R.Operate_time = D_sys_now;
if (s->Key1_handled == 0 && R.app_status != POW_OFF) if (s->Key1_handled == 0 && R.app_status != POW_OFF)
{ {
s->Key1_handled = 1; s->Key1_handled = 1;
@ -91,6 +93,7 @@ void L3_task_keystatus_handler(S_TASK_KEYSTATUS *s)
} }
else if (L2_ReadKey2() == Key_Down) else if (L2_ReadKey2() == Key_Down)
{ {
R.Operate_time = D_sys_now;
if (s->Key2_handled == 0 && R.app_status != POW_OFF) if (s->Key2_handled == 0 && R.app_status != POW_OFF)
{ {
s->Key2_handled = 1; s->Key2_handled = 1;

2
source/bsp/bsp_oid.c

@ -8,6 +8,7 @@
#include "../app/app_task_speech.h" #include "../app/app_task_speech.h"
#include "../bsp/bsp_WT2605B.h" #include "../bsp/bsp_WT2605B.h"
#include "../bsp/bsp_wifi.h" #include "../bsp/bsp_wifi.h"
#include "../app/app_config.h"
/****************************************************************************************************** /******************************************************************************************************
@ -472,6 +473,7 @@ void L1_Oid_readoid(void)
{ {
if(!OID_DET) if(!OID_DET)
{ {
R.Operate_time = D_sys_now;
// L2_WT2605B_Broadcast(&audio_game_correct); // L2_WT2605B_Broadcast(&audio_game_correct);
ts_oid.pre_x = ts_oid.X100; ts_oid.pre_x = ts_oid.X100;
ts_oid.pre_y = ts_oid.Y100; ts_oid.pre_y = ts_oid.Y100;

2
source/bsp/chipid.c

@ -42,7 +42,7 @@ void L0_id_get_chipid()
P_SW2 |= 0x80; P_SW2 |= 0x80;
for(i=0;i<MSP_ID_LEN;i++) for(i=0;i<MSP_ID_LEN;i++)
{ {
G.mcu_id[i] = ID_ADDR_IN_CHIPID[i]; G.mcu_id[i] = ID_ADDR_IN_CHIPID[3+i];
} }
} }

Loading…
Cancel
Save