📄 dsp28_defaultisr.c
字号:
}
//---------------------------------------------------------------------------
// EV-A Default ISRs:
// 保护
interrupt void PDPINTA_ISR( void ) // EV-A
{
PieCtrl.PIEACK.bit.ACK1 = 1;
EvaRegs.EVAIFRA.bit.PDPINTA = 1;
EvaRegs.GPTCONA.bit.TCOMPOE = 1;
EvaRegs.COMCONA.bit.FCOMPOE = 1;
}
interrupt void CMP1INT_ISR(void) // EV-A
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
// PieCtrl.PIEACK.all = PIEACK_GROUP2;
// Next two lines for debug only - remove after inserting
// ISR Code
asm (" ESTOP0");
for(;;);
// Uncomment this line after adding ISR Code
// return;
}
interrupt void CMP2INT_ISR(void) // EV-A
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
// PieCtrl.PIEACK.all = PIEACK_GROUP2;
// Next two lines for debug only - remove after inserting
// ISR Code
asm (" ESTOP0");
for(;;);
// Uncomment this line after adding ISR Code
// return;
}
interrupt void CMP3INT_ISR(void) // EV-A
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
// PieCtrl.PIEACK.all = PIEACK_GROUP2;
// Next two lines for debug only - remove after inserting
// ISR Code
asm (" ESTOP0");
for(;;);
// Uncomment this line after adding ISR Code
// return;
}
// INT2.4
interrupt void T1PINT_ISR(void) // EV-A
{
// Insert ISR Code here
// To receive more interrupts from this PIE group, acknowledge this interrupt
PieCtrl.PIEACK.all = PIEACK_GROUP2; //响应同组中断
EvaRegs.EVAIFRA.bit.T1PINT = 1; //清楚中断标志位
}
// INT2.5
interrupt void T1CINT_ISR(void) // EV-A
{
// Insert ISR Code here
// To receive more interrupts from this PIE group, acknowledge this interrupt
PieCtrl.PIEACK.all = PIEACK_GROUP2; //响应同组中断
/* if(ff == 3) { //如果ff=3表示已经接收到一组新的参数值,开始进行赋值处理
var1 = Dp;
var2 = Fp;
var3 = Dn;
var4 = Fn;
ff = 0;
}
spi_xmit(var1);
while(SpiaRegs.SPISTS.bit.INT_FLAG==0) { }
Test_flag1 = SpiaRegs.SPIRXBUF;
spi_xmit(var2);
while(SpiaRegs.SPISTS.bit.INT_FLAG==0) { }
Test_flag2 = SpiaRegs.SPIRXBUF;
spi_xmit(var3);
while(SpiaRegs.SPISTS.bit.INT_FLAG==0) { }
Test_flag3 = SpiaRegs.SPIRXBUF;
spi_xmit(var4);
while(SpiaRegs.SPISTS.bit.INT_FLAG==0) { }
Test_flag4 = SpiaRegs.SPIRXBUF;*/
EvaRegs.EVAIFRA.bit.T1CINT = 1; //清楚中断标志位
}
interrupt void T1UFINT_ISR(void) // EV-A
{
PieCtrl.PIEACK.bit.ACK2 = 1;
EvaRegs.EVAIFRA.bit.T1UFINT = 1;
EvaRegs.CMPR1 = 0x0001;
EvaRegs.CMPR2 = 0x1D4B - (phase_shifting>>15);
}
interrupt void T1OFINT_ISR(void) // EV-A
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
// PieCtrl.PIEACK.all = PIEACK_GROUP2;
// Next two lines for debug only - remove after inserting
// ISR Code
asm (" ESTOP0");
for(;;);
// Uncomment this line after adding ISR Code
// return;
}
// INT 3.1
interrupt void T2PINT_ISR(void) // EV-A
{
// Insert ISR Code here
// To receive more interrupts from this PIE group, acknowledge this interrupt
PieCtrl.PIEACK.all = PIEACK_GROUP3; //响应同组中断
EvaRegs.EVAIFRB.bit.T2PINT = 1; //清楚中断标志位
}
// INT3.2
interrupt void T2CINT_ISR(void) // EV-A
{
// Insert ISR Code here
// To receive more interrupts from this PIE group, acknowledge this interrupt
PieCtrl.PIEACK.all = PIEACK_GROUP3; //响应同组中断
// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
Tmp++;
if((sNp == 1) || (sNn == 1)) { //当满足正负向脉冲出现0的情况时,转到周期中断中去处理
}else { //无特殊情况,进行以下处理
if(Tmp == (sNn - 1)) { //在倒数第二个负脉冲时,对周期寄存器的值进行处理
if(sTn == 0) {
EvaRegs.T2PR = f[sFn - 100]; //换向时间为0时,表示正常输出,故读表即可
}else {
EvaRegs.T2PR = EvaRegs.T2CMPR + sTn; //否者,把下个周期的无效时间变成为换向期的值
}
EvaRegs.T1PR = f[sFp - 100]; //正向脉冲的周期寄存器和比较寄存器的值保持不变
EvaRegs.T1CMPR = sDp;
EvaRegs.T1CNT = 0;
}
}
if(Tmp == sNn) { //当负向脉冲个数计数到最后一个时,进行以下处理
if((sNp == 1) || (sNn == 1)) { //当正负脉冲有1的情况时,转到周期中断中进行处理
if(sTn == 0) {
EvaRegs.T2PR = f[sFn - 100];
}else {
EvaRegs.T2PR = f[sFn - 100] + sTn;
}
EvaRegs.T2CMPR = sDn;
}else{
EvaRegs.GPTCONA.bit.T2PIN = 3; //无以上情况时,把负向脉冲封锁,并更新周期寄存器和比较器中的值
EvaRegs.T2PR = f[sFn - 100];
EvaRegs.T2CMPR = sDn;
}
}
EvaRegs.EVAIFRB.bit.T2CINT = 1; //清楚中断标志位
}
interrupt void T2UFINT_ISR(void) // EV-A
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
// PieCtrl.PIEACK.all = PIEACK_GROUP3;
// Next two lines for debug only - remove after inserting
// ISR Code
asm (" ESTOP0");
for(;;);
// Uncomment this line after adding ISR Code
// return;
}
interrupt void T2OFINT_ISR(void) // EV-A
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
// PieCtrl.PIEACK.all = PIEACK_GROUP3;
// Next two lines for debug only - remove after inserting
// ISR Code
asm (" ESTOP0");
for(;;);
// Uncomment this line after adding ISR Code
// return;
}
interrupt void CAPINT1_ISR(void) // EV-A
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
// PieCtrl.PIEACK.all = PIEACK_GROUP3;
// Next two lines for debug only - remove after inserting
// ISR Code
asm (" ESTOP0");
for(;;);
// Uncomment this line after adding ISR Code
// return;
}
interrupt void CAPINT2_ISR(void) // EV-A
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
// PieCtrl.PIEACK.all = PIEACK_GROUP3;
// Next two lines for debug only - remove after inserting ISR
asm (" ESTOP0");
for(;;);
// Uncomment this line after adding ISR Code
// return;
}
interrupt void CAPINT3_ISR(void) // EV-A
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
// PieCtrl.PIEACK.all = PIEACK_GROUP3;
// Next two lines for debug only - remove after inserting
// ISR Code
asm (" ESTOP0");
for(;;);
// Uncomment this line after adding ISR Code
// return;
}
//---------------------------------------------------------------------------
// EV-B Default ISRs:
//
interrupt void PDPINTB_ISR(void) // EV-B
{
PieCtrl.PIEACK.bit.ACK1 = 1;
EvbRegs.EVBIFRA.bit.PDPINTB = 1;
EvbRegs.GPTCONB.bit.TCOMPOE = 1;
EvbRegs.COMCONB.bit.FCOMPOE = 1;
}
interrupt void CMP4INT_ISR(void) // EV-B
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
// PieCtrl.PIEACK.all = PIEACK_GROUP4;
// Next two lines for debug only - remove after inserting
// ISR Code
asm (" ESTOP0");
for(;;);
// Uncomment this line after adding ISR Code
// return;
}
interrupt void CMP5INT_ISR(void) // EV-B
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
// PieCtrl.PIEACK.all = PIEACK_GROUP4;
// Next two lines for debug only - remove after inserting
// ISR Code
asm (" ESTOP0");
for(;;);
// Uncomment this line after adding ISR Code
// return;
}
interrupt void CMP6INT_ISR(void) // EV-B
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
// PieCtrl.PIEACK.all = PIEACK_GROUP4;
// Next two lines for debug only - remove after inserting
// ISR Code
asm (" ESTOP0");
for(;;);
// Uncomment this line after adding ISR Code
// return;
}
interrupt void T3PINT_ISR(void) // EV-B
{
PieCtrl.PIEACK.bit.ACK4 = 1;
Cmp2 = 1;
EvbRegs.EVBIFRA.bit.T3PINT = 1;
}
interrupt void T3CINT_ISR(void) // EV-B
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
PieCtrl.PIEACK.all = PIEACK_GROUP4;
// Next two lines for debug only - remove after inserting
// ISR Code
if(Cmp2 == 1) {
EvbRegs.T4PR = 0x6000;
EvbRegs.T4CMPR = 0x1000;
EvbRegs.T4CNT = 0;
Cmp2 = 0;
Under = 1;
}
// Uncomment this line after adding ISR Code
// return;
EvbRegs.EVBIFRA.bit.T3CINT = 1;
}
interrupt void T3UFINT_ISR(void) // EV-B
{
PieCtrl.PIEACK.bit.ACK4 = 1;
if(Under == 1) {
Under = 0;
EvbRegs.GPTCONB.bit.T3PIN = 0;
EvbRegs.GPTCONB.bit.T4PIN = 2;
EvbRegs.T3CON.bit.TECMPR = 0;
EvbRegs.T4CON.bit.TECMPR = 1;
EvbRegs.T4CNT = 0;
}
EvbRegs.EVBIFRA.bit.T3UFINT = 1;
}
interrupt void T3OFINT_ISR(void) // EV-B
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
// PieCtrl.PIEACK.all = PIEACK_GROUP4;
// Next two lines for debug only - remove after inserting
// ISR Code
asm (" ESTOP0");
for(;;);
// Uncomment this line after adding ISR Code
// return;
}
interrupt void T4PINT_ISR(void) // EV-B
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
PieCtrl.PIEACK.all = PIEACK_GROUP5;
// Next two lines for debug only - remove after inserting
// ISR Code
Cmp2 = 1;
// Uncomment this line after adding ISR Code
// return;
EvbRegs.EVBIFRB.bit.T4PINT = 1;
}
interrupt void T4CINT_ISR(void) // EV-B
{
// Insert ISR Code here
// To recieve more interrupts from this PIE group, acknowledge this interrupt
PieCtrl.PIEACK.all = PIEACK_GROUP5;
// Next two lines for debug only - remove after inserting
// ISR Code
if(Cmp2 == 1) {
EvbRegs.T3PR = 0x7000;
EvbRegs.T3CMPR = 0x2000;
EvbRegs.T3CNT = 0;
Cmp2 = 0;
Under = 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -