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

📄 cpu12isrs.c

📁 关于XD256的应用实例,用于汽车电子开发之用
💻 C
📖 第 1 页 / 共 2 页
字号:
/*****************************************************
 CPU12ISR.c - interrupt/exception handlers for HCS12    
 ----------------------------------------------------
  
 *****************************************************/

#include "hidef.h" /* this file declares symbols user by the CodeWarrior environment */

#include "VTypes.h"
#include "XDP512Regs.h"
#include "Globals.h"
#include "Car.h"
#include "main.h"
#include "CPU12ISRs.h"


#pragma CODE_SEG __NEAR_SEG NON_BANKED		/* these functions have to be allocated in the non banked area */
  

/*************************************************************************************/

ISR void SpuriousISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function SpuriousISR() */
 
 _asm("bgnd");
 
}	/* end SpuriousISR */

/*************************************************************************************/

ISR void CPU12ReservedISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12ReservedISR() */
 
 _asm("bgnd");
 
}	/* end CPU12ReservedISR */

/*************************************************************************************/

ISR void XSRAM20KISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function XSRAM20KISR() */
 
 _asm("bgnd");
 
}	/* end XSRAM20KISR */

/*************************************************************************************/

ISR void CPU12XGSWErrorISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12XGSWErrorISR() */
 
 _asm("bgnd");
 
}	/* end CPU12XGSWErrorISR */

/*************************************************************************************/

ISR void CPU12XGSwTrig7ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12XGSwTrig7ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12XGSwTrig7ISR */

/*************************************************************************************/

ISR void CPU12XGSwTrig6ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12XGSwTrig6ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12XGSwTrig6ISR */

/*************************************************************************************/

ISR void CPU12XGSwTrig5ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12XGSwTrig5ISR() */
 
 RegBase->XGSWT = 0x2000;			/* reset software trigger 5 */
 
 On_ButtonDown(SwLEDData.SwMask); /* any button pressed */
 
}	/* end CPU12XGSwTrig5ISR */

/*************************************************************************************/

ISR void CPU12XGSwTrig4ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12XGSwTrig4ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12XGSwTrig4ISR */

/*************************************************************************************/

ISR void CPU12XGSwTrig3ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12XGSwTrig3ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12XGSwTrig3ISR */

/*************************************************************************************/

ISR void CPU12XGSwTrig2ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12XGSwTrig2ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12XGSwTrig2ISR */

/*************************************************************************************/

ISR void CPU12XGSwTrig1ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12XGSwTrig1ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12XGSwTrig1ISR */

/*************************************************************************************/

ISR void CPU12XGSwTrig0ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12XGSwTrig0ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12XGSwTrig0ISR */

/*************************************************************************************/

uint HC12IdleCount;
uint HC12IdleCounter; 

ISR void CPU12PIT3ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12PIT3ISR() */
 
 RegBase->PITTF = 0x08;			/* clear the PIT channel 3 interrupt flag */
 
 HC12IdleCount = HC12IdleCounter;
 HC12IdleCounter = 0;
 
 if (!CalibrationPhase && CarSimulation) {
    SimulateCar(); 
 }
 
}	/* end CPU12PIT3ISR */

/*************************************************************************************/

ISR void CPU12PIT2ISR(void)

 {
  
 /* Variable Declarations */

 uchar x;

 /* Begin Function CPU12PIT2ISR() */

 RegBase->PITTF = 0x04;			/* clear the PIT channel 2 interrupt flag */

 switch (SwLEDData.CurState) {
 
  case UpState:
   {
    SwLEDData.SwMask = 0x01;				/* initialize the I/O port switch mask */
    SwLEDData.PortData = ~RegBase->PT1AD1;		/* get the current value of the switches & invert their state */
    for (x = 0; x < 6; x++)				/* check to see if any of them are pressed */
     if ((SwLEDData.PortData & SwLEDData.SwMask) == 0)	/* this switch pressed? */
      SwLEDData.SwMask <<= 1;				/* no. check the next one */
     else
      break;						/* yes. switch pressed, leave loop */
    if (x != 6)						/* a switch was pressed, go to the debounce down state */
     SwLEDData.CurState = DBDnState;
     SwLEDData.LastState = UpState;
    break;						/* break from case statement & return */
   }
  
  case DBDnState:
   {
    SwLEDData.PortData = ~RegBase->PT1AD1;		/* get the current value of the switches */
    if ((SwLEDData.PortData & SwLEDData.SwMask) == 0)	/* this switch still pressed pressed after debounce period? */
     {
      SwLEDData.CurState = UpState;			/* no. reset state back to up state */
      break;						/* break from case statement & return */
     }
    SwLEDData.CurState = DnState;			/* set current state to down state & fall through to down state code */
    SwLEDData.LastState = DBDnState;
   }
  
  case DnState:
   {
    SwLEDData.PortData = ~RegBase->PT1AD1;		/* get the current value of the switches */
    if ((SwLEDData.PortData & SwLEDData.SwMask) == 0)	/* switch still pressed pressed? */
     {
      SwLEDData.CurState = DBUpState;			/* no. set state to debounce up state */
      break;						/* break from case statement & return */
     }

    switch (SwLEDData.SwMask) {				/* perform action of pressed switch */
     
     case HBSwitch:
      {
       if (((RegBase->PWME & 0x04) == 0) && (SwLEDData.LastState == DBDnState))
        RegBase->PWME |= 0x04;
       else if (((RegBase->PWME & 0x04) != 0) && (SwLEDData.LastState == DBDnState))
        RegBase->PWME &= ~0x04;
       break;
      }		/* end case HBSwitch */
     
     case FGSwitch:
      {
       if (((RegBase->PWME & 0x08) == 0) && (SwLEDData.LastState == DBDnState))
        RegBase->PWME |= 0x08;
       else if (((RegBase->PWME & 0x08) != 0) && (SwLEDData.LastState == DBDnState))
        RegBase->PWME &= ~0x08;
       break;
      }		/* end case FGSwitch */
    
    case LSwitch:
     {
      if (((RegBase->PWME & 0x01) == 0) && (SwLEDData.BlinkTime == 0))
       {
        RegBase->PWME |= 0x01;
        SwLEDData.BlinkTime = 20;
       }
      else if (((RegBase->PWME & 0x01) != 0) && (SwLEDData.BlinkTime == 0))
       {
        RegBase->PWME &= ~0x01;
        SwLEDData.BlinkTime = 20;
       }
      SwLEDData.BlinkTime--;
      break;
     }		/* end case LSwitch: */
    
    case RSwitch:
     {
      if (((RegBase->PWME & 0x02) == 0) && (SwLEDData.BlinkTime == 0))
       {
        RegBase->PWME |= 0x02;
        SwLEDData.BlinkTime = 20;
       }
      else if (((RegBase->PWME & 0x02) != 0) && (SwLEDData.BlinkTime == 0))
       {
        RegBase->PWME &= ~0x02;
        SwLEDData.BlinkTime = 20;
       }
      SwLEDData.BlinkTime--;
      break;
     }		/* end case RSwitch */
    
    case UpSwitch:
     {
      if (RegBase->PWMDTY0 < 200)
       {
        RegBase->PWMDTY0++;
        RegBase->PWMDTY1++;
        RegBase->PWMDTY2++;
        RegBase->PWMDTY3++;
        RegBase->PWMDTY4++;
        RegBase->PWMDTY5++;
        RegBase->PWMDTY6++;
        RegBase->PWMDTY7++;
       }
      break;
     }		/* end case UpSwitch */
    
    case DnSwitch:
     {
      if (RegBase->PWMDTY0 > 10)
       {
        RegBase->PWMDTY0--;
        RegBase->PWMDTY1--;
        RegBase->PWMDTY2--;
        RegBase->PWMDTY3--;
        RegBase->PWMDTY4--;
        RegBase->PWMDTY5--;
        RegBase->PWMDTY6--;
        RegBase->PWMDTY7--;
       }
      break;
     }		/* end case DnSwitch */
    
    }	/* end switch (SwLEDData.SwMask) */

    SwLEDData.LastState = DnState;
    break;
   }
  
  case DBUpState:
   {
    SwLEDData.PortData = ~RegBase->PT1AD1;		/* get the current value of the switches */
    if ((~RegBase->PT1AD1 & SwLEDData.SwMask) != 0)	/* switch pressed pressed after debounce up period? */
     SwLEDData.CurState = DnState;			/* yes. set state to down state */
    else
     {
      if (SwLEDData.SwMask == LSwitch)
       {
        RegBase->PWME &= ~0x01;
        SwLEDData.BlinkTime = 0;
       }
      else if (SwLEDData.SwMask == RSwitch)
       {
        RegBase->PWME &= ~0x02;
        SwLEDData.BlinkTime = 0;
       }
      SwLEDData.CurState = UpState;			/* no. set state back to up state */
     }

    break;
   }
  
  default:
   break;
 
 }	/* end switch (SwLEDData.CurState) */
  
}	/* end CPU12PIT2ISR() */

/*************************************************************************************/

ISR void CPU12PIT1ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12PIT1ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12PIT1ISR */

/*************************************************************************************/

ISR void CPU12PIT0ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12PIT0ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12PIT0ISR */

/*************************************************************************************/

ISR void CPU12APIISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12APIISR() */
 
 _asm("bgnd");
 
}	/* end CPU12APIISR */

/*************************************************************************************/

ISR void CPU12LVIISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12LVIISR() */
 
 _asm("bgnd");
 
}	/* end CPU12LVIISR */

/*************************************************************************************/

ISR void CPU12IIC1ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12IIC1ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12IIC1ISR */

/*************************************************************************************/

ISR void CPU12SCI5ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12SCI5ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12SCI5ISR */

/*************************************************************************************/

ISR void CPU12SCI4ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12SCI4ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12SCI4ISR */

/*************************************************************************************/

ISR void CPU12SCI3ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12SCI3ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12SCI3ISR */

/*************************************************************************************/

ISR void CPU12SCI2ISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12SCI2ISR() */
 
 _asm("bgnd");
 
}	/* end CPU12SCI2ISR */

/*************************************************************************************/

ISR void CPU12PWMISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12PWMISR() */
 
 _asm("bgnd");
 
}	/* end CPU12PWMISR */

/*************************************************************************************/

ISR void CPU12PortPISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12PortPISR() */
 
 _asm("bgnd");
 
}	/* end CPU12PortPISR */

/*************************************************************************************/

ISR void CPU12CAN4TxISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12CAN4TxISR() */
 
 _asm("bgnd");
 
}	/* end CPU12CAN4TxISR */

/*************************************************************************************/

ISR void CPU12CAN4RxISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12CAN4RxISR() */
 
 _asm("bgnd");
 
}	/* end CPU12CAN4RxISR */

/*************************************************************************************/

ISR void CPU12CAN4ErrISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12CAN4ErrISR() */
 
 _asm("bgnd");
 
}	/* end CPU12CAN4ErrISR */

/*************************************************************************************/

ISR void CPU12CAN4WakeISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12CAN4WakeISR() */
 
 _asm("bgnd");
 
}	/* end CPU12CAN4WakeISR */

/*************************************************************************************/

ISR void CPU12CAN3TxISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12CAN3TxISR() */
 
 _asm("bgnd");
 
}	/* end CPU12CAN3TxISR */

/*************************************************************************************/

ISR void CPU12CAN3RxISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12CAN3RxISR() */
 
 _asm("bgnd");
 
}	/* end CPU12CAN3RxISR */

/*************************************************************************************/

ISR void CPU12CAN3ErrISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12CAN3ErrISR() */
 
 _asm("bgnd");
 
}	/* end CPU12CAN3ErrISR */

/*************************************************************************************/

ISR void CPU12CAN3WakeISR(void)

 {
  
 /* Variable Declarations */

 
 /* Begin Function CPU12CAN3WakeISR() */
 
 _asm("bgnd");
 
}	/* end CPU12CAN3WakeISR */

/*************************************************************************************/

ISR void CPU12CAN2TxISR(void)

 {
  
 /* Variable Declarations */

⌨️ 快捷键说明

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