System_Monitor_user.c 3.22 KB
Newer Older
hu's avatar
hu committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182


#include "System_Monitor.h"
#include "RTE_ADC.h"
#include "GPIO.h"
#include "dr7f701441.dvf.h"
#include "Watchdog.h"
#include "COM_CAN.h"

#define u16Base_Vol 0u

#define u16ENTER_LOW_N_RANGE 6500U
#define u16EXIT_LOW_N_RANGE  7000U

#define u16ENTER_LOW_Y_RANGE 9000U
#define u16EXIT_LOW_Y_RANGE  9500U

#define u16EXIT_HIGH_Y_RANGE  30000U
#define u16ENTER_HIGH_Y_RANGE 32000U

#define u16EXIT_HIGH_N_RANGE  31000U
#define u16ENTER_HIGH_N_RANGE 33000U

#define u16Top_Vol 0xffffu

uint32_t  u32SysRollingCounter;

static const uint16_t SysFun_Range[10u] =
{
    u16Base_Vol,

    u16ENTER_LOW_N_RANGE,
    u16EXIT_LOW_N_RANGE,

    u16ENTER_LOW_Y_RANGE,
    u16EXIT_LOW_Y_RANGE,

    u16EXIT_HIGH_Y_RANGE,
    u16ENTER_HIGH_Y_RANGE,

    u16EXIT_HIGH_N_RANGE,
    u16ENTER_HIGH_N_RANGE,

    u16Top_Vol,
};

static const uint16_t SysNM_Range[10u] =
{
    u16Base_Vol,

    u16ENTER_LOW_N_RANGE,
    u16EXIT_LOW_N_RANGE,

    u16ENTER_LOW_Y_RANGE,
    u16EXIT_LOW_Y_RANGE,

    u16EXIT_HIGH_Y_RANGE,
    u16ENTER_HIGH_Y_RANGE,

    u16EXIT_HIGH_N_RANGE,
    u16ENTER_HIGH_N_RANGE,

    u16Top_Vol,
};

uint16_t Sys_Force_Read_KL30_Voltage(void)
{
    uint16_t u16Voltage;
    u16Voltage = (uint16_t)RTE_ForceRead_KL30_Voltage();
    return u16Voltage;
}

uint16_t Sys_Force_Read_KL15_Voltage(void)
{
    uint16_t u16Voltage;
    u16Voltage = (uint16_t)RTE_ForceRead_KL15_Voltage();
    return u16Voltage;
}

uint16_t Sys_Read_KL30_Voltage(void)
{
    uint16_t u16Voltage;
    u16Voltage = (uint16_t)RTE_Read_KL30_Voltage();
    return u16Voltage;
}

uint16_t Sys_Read_KL15_Voltage(void)
{
    uint16_t u16Voltage;
    u16Voltage = (uint16_t)RTE_Read_KL15_Voltage();
    return u16Voltage;
}


uint8_t Sys_Read_KL30_Valid(void)
{
    uint8_t u8Valid;
    u8Valid = RTE_Read_KL30_Valid();
    return u8Valid;
}

uint8_t Sys_Read_KL15_Valid(void)
{
    uint8_t u8Valid;
    u8Valid = RTE_Read_KL15_Valid();
    return u8Valid;
}

uint8_t System_LINE_KL15(void)
{
    uint8_t u8KL15;
    u8KL15 = ADC_KL15_IN; //15��Ӳ�� 
    return u8KL15;
}


void Sys_KL30_Init ( void)
{
    Sys_Set_DebounceTimer(1000u, 2u, 1000u, 80u);
    Sys_Set_VolRange(SysFun_Range, SysNM_Range);
    System_Monitor_KL30Init();
    System_Fast_WakeUp();
}

void Sys_WakeUp_Init ( void)
{
    Sys_Set_DebounceTimer(1000u, 2u, 1000u, 80u);
    Sys_Set_VolRange(SysFun_Range, SysNM_Range);
    System_Monitor_WakeupInit();
    System_Fast_WakeUp();
}

/*����������ִ�������*/
void Sys_LogicProcess(void)
{
    COM_NM_ACT();
}



void Sys_Rolling(void)
{
    if (u32SysRollingCounter != 65535ul)
    {
        u32SysRollingCounter++;
    }
    else
    {
        u32SysRollingCounter = 0;
    }
}

void Sys_RollingClear(void)
{
    u32SysRollingCounter = 0;
}

uint32_t Sys_Get_ms_Rolling_Counter(void)
{
    return u32SysRollingCounter;
}

void Sys_BlockDelay(uint32_t u32Ms)
{
    uint32_t  RocBackup, Counter;
    Sys_RollingClear();
    RocBackup = Sys_Get_ms_Rolling_Counter();
    do
    {
        WDT_Clear();
        Counter  = Sys_Get_ms_Rolling_Counter();
        if ( Counter >= RocBackup )
        {
            Counter -= RocBackup;
        }
        else
        {
            Counter = 65535U - RocBackup + Counter + 1U;
        }
    }
    while ( Counter < u32Ms );
}