Új hozzászólás Aktív témák

  • tototos

    addikt

    Sziasztok!

    Egy kis macro segítség kellene. A következő sorokat szeretném kiváltani macroval:

    task_Function[0] = task1;
    task_Function[1] = task2;
    task_Function[2] = task3;
    task_Function[3] = task4;
    task_Function[4] = task5;
    task_Function[5] = task6;
    task_Function[6] = task7;

    static portTASK_FUNCTION(task1,params){
    portTickType xLastWakeTime;
    const portTickType xFrequency = RTOS_tasks[0].period_ldu32 / portTICK_RATE_MS;


    // Initialize the xLastWakeTime variable with the current time.
    xLastWakeTime = xTaskGetTickCount();

    while(1)
    {
    RTOS_tasks[0].taskFunction(params);
    // Wait for the next cycle.
    vTaskDelayUntil( &xLastWakeTime, xFrequency );
    }
    }
    static portTASK_FUNCTION(task2,params){
    portTickType xLastWakeTime;
    const portTickType xFrequency = RTOS_tasks[1].period_ldu32 / portTICK_RATE_MS;


    // Initialize the xLastWakeTime variable with the current time.
    xLastWakeTime = xTaskGetTickCount();

    while(1)
    {
    RTOS_tasks[1].taskFunction(params);
    // Wait for the next cycle.
    vTaskDelayUntil( &xLastWakeTime, xFrequency );
    }
    }
    static portTASK_FUNCTION(task3,params){
    portTickType xLastWakeTime;
    const portTickType xFrequency = RTOS_tasks[2].period_ldu32 / portTICK_RATE_MS;


    // Initialize the xLastWakeTime variable with the current time.
    xLastWakeTime = xTaskGetTickCount();

    while(1)
    {
    RTOS_tasks[2].taskFunction(params);
    // Wait for the next cycle.
    vTaskDelayUntil( &xLastWakeTime, xFrequency );
    }
    }
    static portTASK_FUNCTION(task4,params){
    portTickType xLastWakeTime;
    const portTickType xFrequency = RTOS_tasks[3].period_ldu32 / portTICK_RATE_MS;


    // Initialize the xLastWakeTime variable with the current time.
    xLastWakeTime = xTaskGetTickCount();

    while(1)
    {
    RTOS_tasks[3].taskFunction(params);
    // Wait for the next cycle.
    vTaskDelayUntil( &xLastWakeTime, xFrequency );
    }
    }
    static portTASK_FUNCTION(task5,params){
    portTickType xLastWakeTime;
    const portTickType xFrequency = RTOS_tasks[4].period_ldu32 / portTICK_RATE_MS;


    // Initialize the xLastWakeTime variable with the current time.
    xLastWakeTime = xTaskGetTickCount();

    while(1)
    {
    RTOS_tasks[4].taskFunction(params);
    // Wait for the next cycle.
    vTaskDelayUntil( &xLastWakeTime, xFrequency );
    }

    }
    static portTASK_FUNCTION(task6,params){
    portTickType xLastWakeTime;
    const portTickType xFrequency = RTOS_tasks[5].period_ldu32 / portTICK_RATE_MS;


    // Initialize the xLastWakeTime variable with the current time.
    xLastWakeTime = xTaskGetTickCount();

    while(1)
    {
    RTOS_tasks[5].taskFunction(params);
    // Wait for the next cycle.
    vTaskDelayUntil( &xLastWakeTime, xFrequency );
    }
    }
    static portTASK_FUNCTION(task7,params){
    portTickType xLastWakeTime;
    const portTickType xFrequency = RTOS_tasks[6].period_ldu32 / portTICK_RATE_MS;


    // Initialize the xLastWakeTime variable with the current time.
    xLastWakeTime = xTaskGetTickCount();

    while(1)
    {
    RTOS_tasks[6].taskFunction(params);
    // Wait for the next cycle.
    vTaskDelayUntil( &xLastWakeTime, xFrequency );
    }
    }

    Meg lehet ezt valósítani? Köszi.

Új hozzászólás Aktív témák