You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

133 lines
4.0 KiB

4 years ago
////////////////////////////////////////////////////////////////////////////
///@copyright Copyright (c) 2017, 传控科技 All rights reserved.
///-------------------------------------------------------------------------
/// @file BSP_POWER.c
/// @brief BSP_POWER driver app 电源管理
///-------------------------------------------------------------------------
/// @version 1.0
/// @author CC
/// @date 20170122
/// @note cc_AS_stc01
///////////////////////////////////////////////////////////////////////////////// @version 1.0
/// @author CC
/// @date 20180921
/// @note
//////////////////////////////////////////////////////////////////////////////
#ifndef _BSP_POWER_H
#define _BSP_POWER_H
#include "../bsp/bsp_config.h"
#define L1_cw63_reg_set(x,y) L2_I2C_WriteCmd(D_i2c_addr_cw63xx, (x),(y) )
#define L1_cw63_reg_get(x,y) L2_I2C_ReadReg(D_i2c_addr_cw63xx,(x),1)
///#define D_cam_led_on(); L1_cw63_reg_set(D_power_VCC2,D_CW63XX_ON|D_CW63XX_2V8);
///#define D_cam_led_off(); L1_cw63_reg_set(D_power_VCC2,D_CW63XX_OFF|D_CW63XX_2V8);
///#define D_cam_led_off(); D_cam_led_on();///
#define D_cam_DVDD_on(); L1_cw63_reg_set(D_power_VCC,D_CW63XX_ON|D_CW63XX_2V5);
#define D_cam_DVDD_off(); L1_cw63_reg_set(D_power_VCC,D_CW63XX_OFF|D_CW63XX_2V5);
#define D_cam_AVDD_on(); L1_cw63_reg_set(D_power_VCC1,D_CW63XX_ON|D_CW63XX_2V8);////D_cam_AVDD_off();
#define D_cam_AVDD_off(); L1_cw63_reg_set(D_power_VCC1,D_CW63XX_OFF|D_CW63XX_2V8);///
///
/******************************************************************************/
/***************************** Include Files **********************************/
/******************************************************************************/
////#include "../bsp/msa300.h"
#include "../msp/uart0.h"
#define L0_mcu_mode_powerdown() PCON |= 0x02;_nop_();_nop_();_nop_();_nop_();
/// PCON |= 0x02; //将STOP(PCON.1)置1,MCU将进入掉电模式
// //此时CPU无时钟,不执行指令,且所欲外设停止工作
// //外部中断信号和外部复位信号可以终止掉电模式
//
#define L0_mcu_mode_powerIDL() PCON = 0x01;_nop_();_nop_();_nop_();_nop_();
/// PCON |= 0x02; //将STOP(PCON.0)置1,MCU将进入 模式
// //此时CPU 停止工作
// //外部中断信号和外部复位信号可以终止
//
///1000,000/32,000 x 16x(1+n) =
#define D_WKTC_16S 0X7FFF
#define D_WKTC_15S 29999
#define D_WKTC_10S 19999
#define D_WKTC_5S 9999
#define D_WKTC_3S 5999
#define D_WKTC_2S 3999
#define D_WKTC_1S 1999
#define D_WKTC_500MS 999
#define D_WKTC_50mS 99
#define L0_mcu_WKTC(X) WKTC = 0x8000|(X)
///#define L0_mcu_WKTC(X) WKTCH = B1111_1111;WKTCL = 0XFF
#define D_sensor_active_isrNo D_ISR_int4
typedef struct
{
U8 TI:1;
U8 RI:1;
U8 Tx_en:1;
U8 Rx_en:1; //波特率的位数 eive bit number (8 data bits + 1 stop bit)
U8 work:1;
U8 show_mod:1; // =0 普通模式 //s_mu_b.show_mod
U8 power:1; // =0 普通模式 //s_mu_b.power
U8 power2:1; // =0 普通模式 //s_mu_b.show_mod
// U8 power; // =0 普通模式 //s_mu_b.show_mod
}ts_task_power_;
extern ts_task_power_ ts_task_power;
extern void L1_app_POWER_init(void);
extern void L1_app_POWER_handle(void);
// WDT_CONTR = 0x23; //11m使能看门狗,溢出时间约为0.5s
/// WDT_CONTR = 0x24; //11m使能看门狗,溢出时间约为1s
// WDT_CONTR = 0x27; //11m使能看门狗,溢出时间约为8s
// P32 = 0; //测试端口
/// ///22m 2.5s
#ifdef D_use_WDT
#define DL0_WDT_init() WDT_CONTR =BITN5|D_WDT_2520ms
#define DL0_WDT() WDT_CONTR |= 0x10 //清看门狗,否则系统复位
#else
#define DL0_WDT_init()
#define DL0_WDT()
#endif
///注意和烧写界面的硬件看门狗启动
#define D_WDT_315ms B0010_0011
#define D_WDT_629ms B0010_0100
#define D_WDT_1260ms B0010_0101
#define D_WDT_2520ms B0010_0110
#define D_WDT_5030ms B0010_0111
///11m
#define D_WDT_524ms B0010_0011
#define D_WDT_1050ms B0010_0100
#define D_WDT_2100ms B0010_0101
#define D_WDT_4200ms B0010_0110
#define D_WDT_8390ms B0010_0111
#endif // #ifndef _BSP_POWER_H