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

📄 interruptcalls.c

📁 freescale最新的16位单片机
💻 C
字号:
/******************************************************************************
*
* Freescale Semiconductor Inc.
* (c) Copyright 2004-2006 Freescale Semiconductor, Inc.
* ALL RIGHTS RESERVED.
*
***************************************************************************//*!
*
* @file      interruptcalls.c
*
* @author    R89994
* 
* @version   1.0.3.0
* 
* @date      Apr-20-2006
* 
* @brief     Executing required task as a Interrupt call
*
*******************************************************************************
*
* Detailed Description of the file. If not used, remove the separator above.
*
******************************************************************************/
#include "interruptcalls.h"
#include "string.h"
/******************************************************************************
*														Global Variables  																*
******************************************************************************/
 char structureLine = 0;
 extern TaskIdentifier TaskStructure[];
/*****************************************************************************/


interrupt void priorityMin(void){

}
interrupt void priorityLow(void){

}
interrupt void priorityMid(void){

}
interrupt void priorityHigh(void){

}

/*****************************************************************************************************/
void EnableTask (char *taskName, char cycles){
char i;
char compare;
  
  for(i = 0;; i++){					
    compare = (char)strcmp(TaskStructure[i].name, taskName);//find required task
    if(compare == 0){																				//I found the right one
        TaskStructure[i].spec.suspend = cycles;                  //enable task
      break;  
    }
  }  
}

/*****************************************************************************************************/
void DisableTask (char *taskName){
char i;
char compare;
TaskIdentifier *pTaskStructure = &TaskStructure[0];
  
  for(i = 0;; i++){					
    compare = (char)strcmp(TaskStructure[i].name, taskName);//find required task
    if(compare == 0){																				//I found the right one
        TaskStructure[i].spec.suspend = 0;                  //delete task
      break;  
    }
  }
}
/*****************************************************************************************************/
void RunFunctions(char run){
char i;
  for(i=0;i < TASK_ARRAY_SIZE;i++){
   if (TaskStructure[i].priority == run){				                //do I have required priority ?
     if(TaskStructure[i].spec.suspend != 0){ 										//Only active Task
        (*TaskStructure[i].pFunc)();								            //run function        			            
        TaskStructure[i].spec.counter -=1;  
     }
   }
  }
}
























⌨️ 快捷键说明

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