📄 priolow.c
字号:
#include "main.h"
#include "spi.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
void PriorityLow (Byte actual)
{
Word i;
UNION16 temp16;
SPI24 temp24;
switch (arrayTask[actual].number)
{
case DOOR_LOCK_UNLOCK:
arrayTask[actual].priority = 0; // erase task from list
break;
case DOOR_LOCK_LOCK:
arrayTask[actual].priority = 0; // erase task from list
break;
case LIGHTS_55W_OFF:
CSB_U401 = 0; // Chipselect e-Switch MC33580 U401 - PORTB3
lastmsgU401.BYTES.msB = U401_OCR0;
lastmsgU401.BYTES.lsB = U401_NO_HS;
temp16 = ReadWriteSPI16bit(lastmsgU401);
CSB_U401 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case LIGHTS_55W_ON:
CSB_U401 = 0; // Chipselect e-Switch MC33580 U401 - PORTB3
lastmsgU401.BYTES.msB = U401_OCR0;
lastmsgU401.BYTES.lsB = (U401_HS0 | U401_HS1);
temp16 = ReadWriteSPI16bit(lastmsgU401);
CSB_U401 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case LIGHTS_5W_OFF:
CSB_U402 = 0; // Chipselect e-Switch MC33874 U402 - PORTK7
lastmsgU402.BYTES.msB = U402_OCR0;
lastmsgU402.BYTES.lsB = U402_NO_HS;
temp16 = ReadWriteSPI16bit(lastmsgU402);
CSB_U402 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case LIGHTS_5W_ON:
CSB_U402 = 0; // Chipselect e-Switch MC33874 U402 - PORTK7
lastmsgU402.BYTES.msB = U402_OCR0;
lastmsgU402.BYTES.lsB = (U402_HS0 | U402_HS1 | U402_HS2 | U402_HS3);
temp16 = ReadWriteSPI16bit(lastmsgU402);
CSB_U402 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case CABIN_LIGHTS1_OFF:
CSB_U403 = 0; // Chipselect COSS MC33880 U403 - PAD13
lastmsgU403.BYTES.msB = U403_OPEN_LOAD_ON;
lastmsgU403.BYTES.lsB = (lastmsgU403.BYTES.lsB & U403_LIGHTS1_OFF_AND);
temp16 = ReadWriteSPI16bit(lastmsgU403);
CSB_U403 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case CABIN_LIGHTS1_ON:
CSB_U403 = 0; // Chipselect COSS MC33880 U403 - PAD13
lastmsgU403.BYTES.msB = U403_OPEN_LOAD_ON;
lastmsgU403.BYTES.lsB = (lastmsgU403.BYTES.lsB | U403_LIGHTS1_ON_AND);
temp16 = ReadWriteSPI16bit(lastmsgU403);
CSB_U403 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case CABIN_LIGHTS2_OFF:
CSB_U403 = 0; // Chipselect COSS MC33880 U403 - PAD13
lastmsgU403.BYTES.msB = U403_OPEN_LOAD_ON;
lastmsgU403.BYTES.lsB = (lastmsgU403.BYTES.lsB & U403_LIGHTS2_OFF_AND);
temp16 = ReadWriteSPI16bit(lastmsgU403);
CSB_U403 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case CABIN_LIGHTS2_ON:
CSB_U403 = 0; // Chipselect COSS MC33880 U403 - PAD13
lastmsgU403.BYTES.msB = U403_OPEN_LOAD_ON;
lastmsgU403.BYTES.lsB = (lastmsgU403.BYTES.lsB | U403_LIGHTS2_ON_AND);
temp16 = ReadWriteSPI16bit(lastmsgU403);
CSB_U403 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case DASH_BOARD_LIGHTS_OFF:
CSB_U405 = 0;
lastmsgU405.comm = U405_TRISTATE_COMMAND_SG;
lastmsgU405.data.w = U405_DASH_OFF;
temp24 = ReadWriteSPI24bit(lastmsgU405); //
CSB_U405 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case DASH_BOARD_LIGHTS_ON:
CSB_U405 = 0;
lastmsgU405.comm = U405_TRISTATE_COMMAND_SG;
lastmsgU405.data.w = U405_DASH_ON;
temp24 = ReadWriteSPI24bit(lastmsgU405);
CSB_U405 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case WASHER_PUMP_OFF:
CSB_U401 = 0; // Chipselect e-Switch MC33580 U401 - PORTB3
lastmsgU401.BYTES.msB = U401_OCR0;
if (fm_action2)
lastmsgU401.BYTES.lsB = (U401_HS0 | U401_HS1);
else
lastmsgU401.BYTES.lsB = U401_NO_HS;
temp16 = ReadWriteSPI16bit(lastmsgU401);
CSB_U401 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case WASHER_PUMP_ON:
CSB_U401 = 0; // Chipselect e-Switch MC33580 U401 - PORTB3
lastmsgU401.BYTES.msB = U401_OCR0;
if (fm_action2)
lastmsgU401.BYTES.lsB = (U401_HS0 | U401_HS1 | U401_HS2 | U401_HS3);
else
lastmsgU401.BYTES.lsB = (U401_HS2 | U401_HS3);
temp16 = ReadWriteSPI16bit(lastmsgU401);
CSB_U401 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case MIRROR_OFF:
arrayTask[actual].priority = 0; // erase task from list
break;
case MIRROR_FOLD:
arrayTask[actual].priority = 0; // erase task from list
break;
case MIRROR_DOWN:
arrayTask[actual].priority = 0; // erase task from list
break;
case MIRROR_UP:
arrayTask[actual].priority = 0; // erase task from list
break;
case MIRROR_LEFT:
arrayTask[actual].priority = 0; // erase task from list
break;
case MIRROR_RIGHT:
arrayTask[actual].priority = 0; // erase task from list
break;
case WINDOW_LIFT_OFF:
arrayTask[actual].priority = 0; // erase task from list
break;
case WINDOW_LIFT_DOWN:
arrayTask[actual].priority = 0; // erase task from list
break;
case WINDOW_LIFT_UP:
arrayTask[actual].priority = 0; // erase task from list
break;
case MSDI_OFF:
CSB_U404 = 0;
lastmsgU404.comm = U404_TRISTATE_COMMAND_SP;
lastmsgU404.data.w = U404_TRISTATE_OFF;
temp24 = ReadWriteSPI24bit(lastmsgU404); //
CSB_U404 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case MSDI_SINK_CURRENT:
CSB_U404 = 0;
temp24.comm = U404_SETTING_COMMAND;
temp24.data.w = U404_SETTING_SINK;
temp24 = ReadWriteSPI24bit(temp24); //
CSB_U404 = 1;
for (i=0; i < WAIT_5; i++);
CSB_U404 = 0;
lastmsgU404.comm = U404_TRISTATE_COMMAND_SP;
lastmsgU404.data.w = U404_TRISTATE_SINK;
temp24 = ReadWriteSPI24bit(lastmsgU404); //
CSB_U404 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case MSDI_SOURCE_CURRENT:
CSB_U404 = 0;
temp24.comm = U404_SETTING_COMMAND;
temp24.data.w = U404_SETTING_SOURCE;
temp24 = ReadWriteSPI24bit(temp24); //
CSB_U404 = 1;
for (i=0; i < WAIT_5; i++);
CSB_U404 = 0;
lastmsgU404.comm = U404_TRISTATE_COMMAND_SP;
lastmsgU404.data.w = U404_TRISTATE_SOURCE;
temp24 = ReadWriteSPI24bit(lastmsgU404); //
CSB_U404 = 1;
arrayTask[actual].priority = 0; // erase task from list
break;
case CAN_MESSAGE_STOP:
arrayTask[actual].priority = 0; // erase task from list
break;
case CAN_MESSAGE_START:
arrayTask[actual].priority = 0; // erase task from list
break;
case LIN_MESSAGE_STOP:
arrayTask[actual].priority = 0; // erase task from list
break;
case LIN_MESSAGE_START:
arrayTask[actual].priority = 0; // erase task from list
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -