📄 request.c
字号:
/******************************************************************************
*
* Freescale Semiconductor Inc.
* (c) Copyright 2004-2005 Freescale Semiconductor, Inc.
* ALL RIGHTS RESERVED.
*
***************************************************************************//*!
*
* @file request.c
*
* @author r89994
*
* @version 1.0.18.0
*
* @date Aug-1-2006
*
* @brief Checking analog values - 30ms
* running tasks via Freemaster
*******************************************************************************/
#include <stdlib.h>
#include "main.h"
#include "spi.h"
#include "request.h"
#include <linxgate.h>
extern Byte fm_status, fm_task, fm_action0, fm_action1, fm_action2, fm_action3,
fm_action4, fm_action5, fm_action6, fm_action7, fm_action8, fm_action9,
fm_action10, fm_action11, fm_action12, fm_action13, fm_action14;
extern Byte last_action0, last_action1, last_action2, last_action3,
last_action4, last_action5, last_action6, last_action7, last_action8,
last_action9, last_action10, last_action11, last_action12, last_action13,
last_action14;
extern Word fm_analog1, fm_analog2, fm_analog3, fm_analog4, fm_analog5,
fm_analog6, fm_analog7, fm_analog11, fm_analog12, fm_analog13,
fm_analog14, fm_analog21, fm_analog22, fm_analog23, fm_analog24;
extern Byte lastmsgU201, lastmsgU202;
extern UNION16 lastmsgU401, lastmsgU402, lastmsgU403, lastmsgU501, lastmsgU601, lastmsgU605;
extern SPI24 lastmsgU404, lastmsgU405;
// last fail of each device
extern Byte failCAN, failLINx, failJAGUAR, failPUMA, failCOSS,
lastfailCAN, lastfailLIN, lastfailJAGUAR, lastfailPUMA, lastfailCOSS,
lastfaildevice;
extern Byte countercheck; // counter of cycles 30 ms; value is <0,7>
extern TASK arrayTask[SIZE_TASK_ARRAY];
extern Byte actualTask; // pointer to actualy solved task in arrayTask
/******************************************************************************
* Module : void CheckingHW30ms(void)
* Description : Function checked status of HW, it is called every 30 ms
* Global Data : countercheck,fm_action
* Static Global Data: none
* Returns : none
* Arguments : none
* Special Issues : none
******************************************************************************/
void CheckingHW30ms (void)
{
Byte temp8, temptask, newtask;
UNION16 temp16;
SPI24 temp24;
switch (fm_task)
{
case MANUAL_CONTROLL:
CSB_U404 = 0;
temp24.comm = U404_SWITCH_STATUS;
temp24.data.w = U404_ZERO;
temp24 = ReadWriteSPI24bit(temp24); //
CSB_U404 = 1;
if (temp24.data.BYTES.msB & U404_TEST_SG8_SET)
fm_action8 = 4;
else
fm_action8 = 0;
RequestFM(MIRROR);
if (temp24.data.BYTES.msB & U404_TEST_SG9_SET)
fm_action8 = 5;
else
fm_action8 = 0;
RequestFM(MIRROR);
if (temp24.data.BYTES.msB & U404_TEST_SG10_SET)
fm_action8 = 2;
else
fm_action8 = 0;
RequestFM(MIRROR);
if (temp24.data.BYTES.msB & U404_TEST_SG11_SET)
fm_action8 = 3;
else
fm_action8 = 0;
RequestFM(MIRROR);
if (temp24.data.BYTES.msB & U404_TEST_SG12_SET)
fm_action6 = 1;
else
fm_action6 = 0;
RequestFM(DASH_BOARD_LIGHTS);
if (temp24.data.BYTES.msB & U404_TEST_SP0_SET)
fm_action9 = 2;
else
fm_action9 = 0;
RequestFM(WINDOW_LIFT);
if (temp24.data.BYTES.msB & U404_TEST_SP1_SET)
fm_action9 = 1;
else
fm_action9 = 0;
RequestFM(WINDOW_LIFT);
if (temp24.data.BYTES.lsB & U404_TEST_SG0_SET)
fm_action3 = 1;
else
fm_action3 = 0;
RequestFM(LIGHTS_5W);
if (temp24.data.BYTES.lsB & U404_TEST_SG1_SET)
fm_action2 = 1;
else
fm_action2 = 0;
RequestFM(LIGHTS_55W);
if (temp24.data.BYTES.lsB & U404_TEST_SG2_SET)
fm_action4 = 1;
else
fm_action4 = 0;
RequestFM(CABIN_LIGHTS1);
if (temp24.data.BYTES.lsB & U404_TEST_SG3_SET)
fm_action13 = 1;
else
fm_action13 = 0;
RequestFM(CABIN_LIGHTS2);
if (temp24.data.BYTES.lsB & U404_TEST_SG4_SET)
fm_action5 = 1;
else
fm_action5 = 0;
RequestFM(CABIN_DIMM);
if (temp24.data.BYTES.lsB & U404_TEST_SG5_SET)
fm_action1 = 1;
else
fm_action1 = 0;
RequestFM(DOOR_LOCK);
if (temp24.data.BYTES.lsB & U404_TEST_SG6_SET)
fm_action7 = 1;
else
fm_action7 = 0;
RequestFM(WASHER_PUMP);
if (temp24.data.BYTES.lsB & U404_TEST_SG7_SET)
fm_action8 = 1;
else
fm_action8 = 0;
RequestFM(MIRROR);
lastmsgU404 = temp24;
break;
case DOOR_LOCK:
CSB_U404 = 0;
temp24.comm = U404_SWITCH_STATUS;
temp24.data.w = U404_ZERO;
temp24 = ReadWriteSPI24bit(temp24);
CSB_U404 = 1;
break;
case LIGHTS_55W:
switch(countercheck)
{
case ZEROTH_30ms:
case SECOND_30ms:
case FOURTH_30ms:
case SIXTH_30ms:
temptask = FindTask(LOW, ANALOG_JAGUAR_CURRENT_HS0);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_JAGUAR_CURRENT_HS0;
}
}
break;
case FIRST_30ms:
case THIRD_30ms:
case FIFTH_30ms:
case SEVENTH_30ms:
temptask = FindTask(LOW, ANALOG_JAGUAR_CURRENT_HS1);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_JAGUAR_CURRENT_HS1;
}
}
break;
}
break;
case LIGHTS_5W:
switch(countercheck)
{
case ZEROTH_30ms:
case FOURTH_30ms:
temptask = FindTask(LOW, ANALOG_PUMA_CURRENT_HS0);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_PUMA_CURRENT_HS0;
}
}
break;
case FIRST_30ms:
case FIFTH_30ms:
temptask = FindTask(LOW, ANALOG_PUMA_CURRENT_HS1);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_PUMA_CURRENT_HS1;
}
}
case SECOND_30ms:
case SIXTH_30ms:
temptask = FindTask(LOW, ANALOG_PUMA_CURRENT_HS2);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_PUMA_CURRENT_HS2;
}
}
break;
case THIRD_30ms:
case SEVENTH_30ms:
temptask = FindTask(LOW, ANALOG_PUMA_CURRENT_HS3);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_PUMA_CURRENT_HS3;
}
}
break;
}
break;
case CABIN_LIGHTS1:
break;
case CABIN_LIGHTS2:
break;
case CABIN_DIMM:
break;
case DASH_BOARD_LIGHTS:
break;
case WASHER_PUMP:
switch(countercheck)
{
case ZEROTH_30ms:
case SECOND_30ms:
case FOURTH_30ms:
case SIXTH_30ms:
temptask = FindTask(LOW, ANALOG_JAGUAR_CURRENT_HS2);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_JAGUAR_CURRENT_HS2;
}
}
break;
case FIRST_30ms:
case THIRD_30ms:
case FIFTH_30ms:
case SEVENTH_30ms:
temptask = FindTask(LOW, ANALOG_JAGUAR_CURRENT_HS3);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_JAGUAR_CURRENT_HS3;
}
}
break;
}
break;
case MIRROR:
break;
case WINDOW_LIFT:
break;
case MSDI:
temptask = FindTask(MID, ANALOG_BUTTON_SELECTION);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < MID)
{
arrayTask[newtask].priority = MID;
arrayTask[newtask].number = ANALOG_BUTTON_SELECTION;
}
}
switch (countercheck)
{
case ZEROTH_30ms:
temptask = FindTask(LOW, ANALOG_VOLTAGE1);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_VOLTAGE1;
}
}
break;
case FIRST_30ms:
temptask = FindTask(LOW, ANALOG_VOLTAGE2);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_VOLTAGE2;
}
}
break;
case SECOND_30ms:
temptask = FindTask(LOW, ANALOG_AMBIENT_TEMPERATURE);
if (temptask == NO_TASK)
{
newtask = NewTask();
if (arrayTask[newtask].priority < LOW)
{
arrayTask[newtask].priority = LOW;
arrayTask[newtask].number = ANALOG_AMBIENT_TEMPERATURE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -