⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 request.c

📁 freescale最新的16位单片机
💻 C
📖 第 1 页 / 共 2 页
字号:
                    }
                break;

                case THIRD_30ms:
                    temptask = FindTask(LOW, ANALOG_LIGHT_INTENSITY); 
                    if (temptask == NO_TASK)
                    {
                        newtask = NewTask();
                        if (arrayTask[newtask].priority < LOW)
                        {
                            arrayTask[newtask].priority = LOW;
                            arrayTask[newtask].number = ANALOG_LIGHT_INTENSITY;
                        }
                    }
                break;

                case FOURTH_30ms:
                    temptask = FindTask(LOW, ANALOG_JAGUAR_TEMPERATURE); 
                    if (temptask == NO_TASK)
                    {
                        newtask = NewTask();
                        if (arrayTask[newtask].priority < LOW)
                        {
                            arrayTask[newtask].priority = LOW;
                            arrayTask[newtask].number = ANALOG_JAGUAR_TEMPERATURE;
                        }
                    }
                break;

                case FIFTH_30ms:
                    temptask = FindTask(LOW, ANALOG_PUMA_TEMPERATURE);
                    if (temptask == NO_TASK)
                    {
                        newtask = NewTask();
                        if (arrayTask[newtask].priority < LOW)
                        {
                            arrayTask[newtask].priority = LOW;
                            arrayTask[newtask].number = ANALOG_PUMA_TEMPERATURE;
                        }
                    }
                break;

                default :
                     newtask = NewTask();
                     arrayTask[newtask].priority = LOW;
                     arrayTask[newtask].number = U405_START;
            }
        break;

        case CAN_MESSAGE:
        break;

        case LIN_MESSAGE:
        break;
    }
}



/******************************************************************************
* Module            : void RequestFM (Task *pFirst, Byte task)
* Description       : Function set a new task to tasklist. tasks are generated via FreeMASTER
* Global Data       : none
* Static Global Data: none
* Returns           : none
* Arguments         : none
* Special Issues    : none
******************************************************************************/

void RequestFM (Byte task)
{

Byte             newtask;


    switch (task)                           // task with most high priority is in progress 
    {
      case MANUAL_CONTROLL:
        break;
        
      case DOOR_LOCK: 
        if (fm_action1 != last_action1)
        {
            newtask = NewTask();
            if (arrayTask[newtask].priority < LOW)
            {
                arrayTask[newtask].priority = LOW;
                if (fm_action1)
                    arrayTask[newtask].number = DOOR_LOCK_LOCK;
                else
                    arrayTask[newtask].number = DOOR_LOCK_UNLOCK;
                last_action1 = fm_action1;  // only when task is inputed to array of task
            }
        }
        break;

      case LIGHTS_55W:
        if (fm_action2 != last_action2)
        {
            newtask = NewTask();
            if (arrayTask[newtask].priority < LOW)
            {
                arrayTask[newtask].priority = LOW;
                if (fm_action2)
                    arrayTask[newtask].number = LIGHTS_55W_ON;
                else
                    arrayTask[newtask].number = LIGHTS_55W_OFF;
                last_action2 = fm_action2;  
            }
        }
        break;

      case LIGHTS_5W:
        if (fm_action3 != last_action3)
        {
            newtask = NewTask();
            if (arrayTask[newtask].priority < LOW)
            {
                arrayTask[newtask].priority = LOW;
                if (fm_action3)
                    arrayTask[newtask].number = LIGHTS_5W_ON;
                else
                    arrayTask[newtask].number = LIGHTS_5W_OFF;
                last_action3 = fm_action3;  
            }
        }
        break;
      
      case CABIN_LIGHTS1:  // COSS
        if (fm_action4 != last_action4)
        {
            newtask = NewTask();
            if (arrayTask[newtask].priority < LOW)
            {
                arrayTask[newtask].priority = LOW;
                if (fm_action4)
                    arrayTask[newtask].number = CABIN_LIGHTS1_ON;
                else
                    arrayTask[newtask].number = CABIN_LIGHTS1_OFF;
                last_action4 = fm_action4;
            }
        }
        break;

      case CABIN_LIGHTS2:  // COSS
        if (fm_action13 != last_action13)
        {
            newtask = NewTask();
            if (arrayTask[newtask].priority < LOW)
            {
                arrayTask[newtask].priority = LOW;
                if (fm_action13)
                    arrayTask[newtask].number = CABIN_LIGHTS2_ON;
                else
                    arrayTask[newtask].number = CABIN_LIGHTS2_OFF;
                last_action13 = fm_action13; 
            }
        }
        break;

      case CABIN_DIMM:		// COSS dimmable lights
        if (fm_action5 != last_action5)
        {
            if (fm_action5)
            {
                newtask = FindTask(MIN, CABIN_DIMM_OFF);
                if (newtask == NO_TASK)
                {
                    newtask = FindTask(MIN, CABIN_DIMM_ON);
                    if (newtask == NO_TASK)
                        newtask = NewTask();
                }
            }
            else
                newtask = NewTask();
            
            if (arrayTask[newtask].priority < MIN)
            {
                arrayTask[newtask].priority = MIN;
                if (fm_action5)
                    arrayTask[newtask].number = CABIN_DIMM_ON;
                else
                {
                    arrayTask[newtask].number = CABIN_DIMM_OFF;
                    arrayTask[newtask].parameter = PWM_MAX;
                }
                last_action5 = fm_action5;  
            }
        }
        break;

      case DASH_BOARD_LIGHTS:   // switching dash board lights
        if (fm_action6 != last_action6)
        {
            newtask = NewTask();
            if (arrayTask[newtask].priority < LOW)
            {
                arrayTask[newtask].priority = LOW;
                if (fm_action6)
                    arrayTask[newtask].number = DASH_BOARD_LIGHTS_ON;
                else
                    arrayTask[newtask].number = DASH_BOARD_LIGHTS_OFF;
                last_action6 = fm_action6;  
            }
        }
        break;

      case WASHER_PUMP:         // running washer pump motor
        if (fm_action7 != last_action7)
        {
            newtask = NewTask();
            if (arrayTask[newtask].priority < LOW)
            {
                arrayTask[newtask].priority = LOW;
                if (fm_action7)
                    arrayTask[newtask].number = WASHER_PUMP_ON;
                else
                    arrayTask[newtask].number = WASHER_PUMP_OFF;
                last_action7 = fm_action7;  
            }
        }
        break;

      case MIRROR:
        if (fm_action8 != last_action8)
        {
            newtask = NewTask();
            if (arrayTask[newtask].priority < LOW)
            {
                arrayTask[newtask].priority = LOW;
                switch (fm_action8)
                {
                    case 0:
                        arrayTask[newtask].number = MIRROR_OFF;
                    break;
                    
                    case 1:
                        arrayTask[newtask].number = MIRROR_FOLD;
                    break;

                    case 2:
                        arrayTask[newtask].number = MIRROR_DOWN;
                    break;

                    case 3:
                        arrayTask[newtask].number = MIRROR_UP;
                    break;

                    case 4:
                        arrayTask[newtask].number = MIRROR_LEFT;
                    break;

                    case 5:
                        arrayTask[newtask].number = MIRROR_RIGHT;
                    break;
                }
                last_action8 = fm_action8;  
            }
        }
        break;

      case WINDOW_LIFT:
        if (fm_action9 != last_action9)
        {
            newtask = NewTask();
            if (arrayTask[newtask].priority < LOW)
            {
                arrayTask[newtask].priority = LOW;
                switch (fm_action9)
                {
                    case 0:
                        arrayTask[newtask].number = WINDOW_LIFT_OFF;
                    break;
                    
                    case 1:
                        arrayTask[newtask].number = WINDOW_LIFT_DOWN;
                    break;

                    case 2:
                        arrayTask[newtask].number = WINDOW_LIFT_UP;
                    break;
                }
                last_action9 = fm_action9;  
            }
        }
        break;

      case MSDI:
        if (fm_action10 != last_action10)
        {
            newtask = NewTask();
            if (arrayTask[newtask].priority < LOW)
            {
                arrayTask[newtask].priority = LOW;
                switch (fm_action10)
                {
                    case 0:
                        arrayTask[newtask].number = MSDI_OFF;
                    break;
                    
                    case 1:
                        arrayTask[newtask].number = MSDI_SINK_CURRENT;
                    break;

                    case 2:
                        arrayTask[newtask].number = MSDI_SOURCE_CURRENT;
                    break;
                }
                last_action10 = fm_action10;  
            }
        }
        break;

      case CAN_MESSAGE:
        if (fm_action11 != last_action11)
        {
            newtask = NewTask();
            if (arrayTask[newtask].priority < LOW)
            {
                arrayTask[newtask].priority = LOW;
                if (fm_action11)
                    arrayTask[newtask].number = CAN_MESSAGE_START;
                else
                    arrayTask[newtask].number = CAN_MESSAGE_STOP;
                last_action11 = fm_action11;
            }
        }
        break;

      case LIN_MESSAGE:
        if (fm_action12 != last_action12)
        {
            newtask = NewTask();
            if (arrayTask[newtask].priority < LOW)
            {
                arrayTask[newtask].priority = LOW;
                if (fm_action12)
                    arrayTask[newtask].number = LIN_MESSAGE_START;
                else
                    arrayTask[newtask].number = LIN_MESSAGE_STOP;
                last_action12 = fm_action12;  
            }
        }
        break;
        
      case LOW_POWER:
        if (fm_action14 != last_action14)
        {   
            newtask = NewTask();
            if (arrayTask[newtask].priority < HIGH)
            {
                arrayTask[newtask].priority = HIGH;
                switch (fm_action14)
                {
                    case 1:
                        arrayTask[newtask].number   = LOWPWR_GO_TO_SLEEP;
                    break;
                    
                    case 2:
                        arrayTask[newtask].number   = LOWPWR_GO_TO_FULLSTOP;
                    break;

                    case 3:
                        arrayTask[newtask].number   = LOWPWR_GO_TO_PSEUDOSTOP;
                    break;

                    case 4:
                        arrayTask[newtask].number   = LOWPWR_WD_TIMEOUT;
                    break;

                    case 5:
                        arrayTask[newtask].number   = LOWPWR_WD_WINDOW_OUT;
                    break;
                }
                last_action14 = fm_action14;        // only when task is inputed to array of task
            }
        }
        break;      
        
      default: 
        break;
    }  // end of switch (task)
}   // end of function Resquest

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -