📄 cpu12isrs.c
字号:
/*****************************************************
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 + -