28335中断的一般方法.docx

上传人:b****8 文档编号:9924406 上传时间:2023-02-07 格式:DOCX 页数:17 大小:51.99KB
下载 相关 举报
28335中断的一般方法.docx_第1页
第1页 / 共17页
28335中断的一般方法.docx_第2页
第2页 / 共17页
28335中断的一般方法.docx_第3页
第3页 / 共17页
28335中断的一般方法.docx_第4页
第4页 / 共17页
28335中断的一般方法.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

28335中断的一般方法.docx

《28335中断的一般方法.docx》由会员分享,可在线阅读,更多相关《28335中断的一般方法.docx(17页珍藏版)》请在冰豆网上搜索。

28335中断的一般方法.docx

28335中断的一般方法

 

中断的一般方法

步骤1

voidInitPieCtrl(void)//初化PIE控制寄存器

{

DINT;//关闭所有CPU标准中断DisableInterruptsattheCPUlevel:

PieCtrlRegs.PIECTRL.bit.ENPIE=0;//关闭所有PIE中断DisablethePIE

//ClearallPIEIERregisters:

清除所有中断使能位

PieCtrlRegs.PIEIER1~12(省了中问部分).all=0;

//ClearallPIEIFRregisters:

清除所有中断标志位

PieCtrlRegs.PIEIFR1~12.all=0;

}

步骤2

//DisableCPUinterruptsandclearallCPUinterruptflags:

IER=0x0000;

IFR=0x0000;

步骤3初始化中断向量表

voidInitPieVectTable(void)

{int16i;

Uint32*Source=(void*)&PieVectTableInit;

Uint32*Dest=(void*)&PieVectTable;

EALLOW;

for(i=0;i<128;i++)

*Dest++=*Source++;

EDIS;

//EnablethePIEVectorTable

PieCtrlRegs.PIECTRL.bit.ENPIE=1;

}

//下面这个原中断数据地向量位置

conststructPIE_VECT_TABLEPieVectTableInit={

PIE_RESERVED,//0Reservedspace

PIE_RESERVED,//1Reservedspace

PIE_RESERVED,//2Reservedspace

PIE_RESERVED,//3Reservedspace

PIE_RESERVED,//4Reservedspace

PIE_RESERVED,//5Reservedspace

PIE_RESERVED,//6Reservedspace

PIE_RESERVED,//7Reservedspace

PIE_RESERVED,//8Reservedspace

PIE_RESERVED,//9Reservedspace

PIE_RESERVED,//10Reservedspace

PIE_RESERVED,//11Reservedspace

PIE_RESERVED,//12Reservedspace

//Non-PeripheralInterrupts

INT13_ISR,//XINT13orCPU-Timer1

INT14_ISR,//CPU-Timer2

DATALOG_ISR,//Datalogginginterrupt

RTOSINT_ISR,//RTOSinterrupt

EMUINT_ISR,//Emulationinterrupt

NMI_ISR,//Non-maskableinterrupt

ILLEGAL_ISR,//IllegaloperationTRAP

USER1_ISR,//UserDefinedtrap1

USER2_ISR,//UserDefinedtrap2

USER3_ISR,//UserDefinedtrap3

USER4_ISR,//UserDefinedtrap4

USER5_ISR,//UserDefinedtrap5

USER6_ISR,//UserDefinedtrap6

USER7_ISR,//UserDefinedtrap7

USER8_ISR,//UserDefinedtrap8

USER9_ISR,//UserDefinedtrap9

USER10_ISR,//UserDefinedtrap10

USER11_ISR,//UserDefinedtrap11

USER12_ISR,//UserDefinedtrap12

//Group1PIEVectors

SEQ1INT_ISR,//1.1ADC

SEQ2INT_ISR,//1.2ADC

rsvd_ISR,//1.3

XINT1_ISR,//1.4

XINT2_ISR,//1.5

ADCINT_ISR,//1.6ADC

TINT0_ISR,//1.7Timer0

WAKEINT_ISR,//1.8WD,LowPower

//Group2PIEVectors

EPWM1_TZINT_ISR,//2.1EPWM-1TripZone

EPWM2_TZINT_ISR,//2.2EPWM-2TripZone

EPWM3_TZINT_ISR,//2.3EPWM-3TripZone

EPWM4_TZINT_ISR,//2.4EPWM-4TripZone

EPWM5_TZINT_ISR,//2.5EPWM-5TripZone

EPWM6_TZINT_ISR,//2.6EPWM-6TripZone

rsvd_ISR,//2.7

rsvd_ISR,//2.8

//Group3PIEVectors

EPWM1_INT_ISR,//3.1EPWM-1Interrupt

EPWM2_INT_ISR,//3.2EPWM-2Interrupt

EPWM3_INT_ISR,//3.3EPWM-3Interrupt

EPWM4_INT_ISR,//3.4EPWM-4Interrupt

EPWM5_INT_ISR,//3.5EPWM-5Interrupt

EPWM6_INT_ISR,//3.6EPWM-6Interrupt

rsvd_ISR,//3.7

rsvd_ISR,//3.8

//Group4PIEVectors

ECAP1_INT_ISR,//4.1ECAP-1

ECAP2_INT_ISR,//4.2ECAP-2

ECAP3_INT_ISR,//4.3ECAP-3

ECAP4_INT_ISR,//4.4ECAP-4

ECAP5_INT_ISR,//4.5ECAP-5

ECAP6_INT_ISR,//4.6ECAP-6

rsvd_ISR,//4.7

rsvd_ISR,//4.8

//Group5PIEVectors

EQEP1_INT_ISR,//5.1EQEP-1

EQEP2_INT_ISR,//5.2EQEP-2

rsvd_ISR,//5.3

rsvd_ISR,//5.4

rsvd_ISR,//5.5

rsvd_ISR,//5.6

rsvd_ISR,//5.7

rsvd_ISR,//5.8

//Group6PIEVectors

SPIRXINTA_ISR,//6.1SPI-A

SPITXINTA_ISR,//6.2SPI-A

MRINTA_ISR,//6.3McBSP-A

MXINTA_ISR,//6.4McBSP-A

MRINTB_ISR,//6.5McBSP-B

MXINTB_ISR,//6.6McBSP-B

rsvd_ISR,//6.7

rsvd_ISR,//6.8

//Group7PIEVectors

DINTCH1_ISR,//7.1DMAchannel1

DINTCH2_ISR,//7.2DMAchannel2

DINTCH3_ISR,//7.3DMAchannel3

DINTCH4_ISR,//7.4DMAchannel4

DINTCH5_ISR,//7.5DMAchannel5

DINTCH6_ISR,//7.6DMAchannel6

rsvd_ISR,//7.7

rsvd_ISR,//7.8

//Group8PIEVectors

I2CINT1A_ISR,//8.1I2C

I2CINT2A_ISR,//8.2I2C

rsvd_ISR,//8.3

rsvd_ISR,//8.4

SCIRXINTC_ISR,//8.5SCI-C

SCITXINTC_ISR,//8.6SCI-C

rsvd_ISR,//8.7

rsvd_ISR,//8.8

//Group9PIEVectors

SCIRXINTA_ISR,//9.1SCI-A

SCITXINTA_ISR,//9.2SCI-A

SCIRXINTB_ISR,//9.3SCI-B

SCITXINTB_ISR,//9.4SCI-B

ECAN0INTA_ISR,//9.5eCAN-A

ECAN1INTA_ISR,//9.6eCAN-A

ECAN0INTB_ISR,//9.7eCAN-B

ECAN1INTB_ISR,//9.8eCAN-B

//Group10PIEVectors

rsvd_ISR,//10.1

rsvd_ISR,//10.2

rsvd_ISR,//10.3

rsvd_ISR,//10.4

rsvd_ISR,//10.5

rsvd_ISR,//10.6

rsvd_ISR,//10.7

rsvd_ISR,//10.8

//Group11PIEVectors

rsvd_ISR,//11.1

rsvd_ISR,//11.2

rsvd_ISR,//11.3

rsvd_ISR,//11.4

rsvd_ISR,//11.5

rsvd_ISR,//11.6

rsvd_ISR,//11.7

rsvd_ISR,//11.8

//Group12PIEVectors

XINT3_ISR,//12.1

XINT4_ISR,//12.2

XINT5_ISR,//12.3

XINT6_ISR,//12.4

XINT7_ISR,//12.5

rsvd_ISR,//12.6

LVF_ISR,//12.7

LUF_ISR,//12.8

};

这是中断目的向量表

structPIE_VECT_TABLE{

//Resetisneverfetchedfromthistable.

//Itwillalwaysbefetchedfrom0x3FFFC0in

//bootROM

PINTPIE1_RESERVED;

PINTPIE2_RESERVED;

PINTPIE3_RESERVED;

PINTPIE4_RESERVED;

PINTPIE5_RESERVED;

PINTPIE6_RESERVED;

PINTPIE7_RESERVED;

PINTPIE8_RESERVED;

PINTPIE9_RESERVED;

PINTPIE10_RESERVED;

PINTPIE11_RESERVED;

PINTPIE12_RESERVED;

PINTPIE13_RESERVED;

//Non-PeripheralInterrupts:

PINTXINT13;//XINT13/CPU-Timer1

PINTTINT2;//CPU-Timer2

PINTDATALOG;//Datalogginginterrupt

PINTRTOSINT;//RTOSinterrupt

PINTEMUINT;//Emulationinterrupt

PINTXNMI;//Non-maskableinterrupt

PINTILLEGAL;//IllegaloperationTRAP

PINTUSER1;//UserDefinedtrap1

PINTUSER2;//UserDefinedtrap2

PINTUSER3;//UserDefinedtrap3

PINTUSER4;//UserDefinedtrap4

PINTUSER5;//UserDefinedtrap5

PINTUSER6;//UserDefinedtrap6

PINTUSER7;//UserDefinedtrap7

PINTUSER8;//UserDefinedtrap8

PINTUSER9;//UserDefinedtrap9

PINTUSER10;//UserDefinedtrap10

PINTUSER11;//UserDefinedtrap11

PINTUSER12;//UserDefinedtrap12

//Group1PIEPeripheralVectors:

PINTSEQ1INT;

PINTSEQ2INT;

PINTrsvd1_3;

PINTXINT1;

PINTXINT2;

PINTADCINT;//ADC

PINTTINT0;//Timer0

PINTWAKEINT;//WD

//Group2PIEPeripheralVectors:

PINTEPWM1_TZINT;//EPWM-1

PINTEPWM2_TZINT;//EPWM-2

PINTEPWM3_TZINT;//EPWM-3

PINTEPWM4_TZINT;//EPWM-4

PINTEPWM5_TZINT;//EPWM-5

PINTEPWM6_TZINT;//EPWM-6

PINTrsvd2_7;

PINTrsvd2_8;

//Group3PIEPeripheralVectors:

PINTEPWM1_INT;//EPWM-1

PINTEPWM2_INT;//EPWM-2

PINTEPWM3_INT;//EPWM-3

PINTEPWM4_INT;//EPWM-4

PINTEPWM5_INT;//EPWM-5

PINTEPWM6_INT;//EPWM-6

PINTrsvd3_7;

PINTrsvd3_8;

//Group4PIEPeripheralVectors:

PINTECAP1_INT;//ECAP-1

PINTECAP2_INT;//ECAP-2

PINTECAP3_INT;//ECAP-3

PINTECAP4_INT;//ECAP-4

PINTECAP5_INT;//ECAP-5

PINTECAP6_INT;//ECAP-6

PINTrsvd4_7;

PINTrsvd4_8;

//Group5PIEPeripheralVectors:

PINTEQEP1_INT;//EQEP-1

PINTEQEP2_INT;//EQEP-2

PINTrsvd5_3;

PINTrsvd5_4;

PINTrsvd5_5;

PINTrsvd5_6;

PINTrsvd5_7;

PINTrsvd5_8;

//Group6PIEPeripheralVectors:

PINTSPIRXINTA;//SPI-A

PINTSPITXINTA;//SPI-A

PINTMRINTB;//McBSP-B

PINTMXINTB;//McBSP-B

PINTMRINTA;//McBSP-A

PINTMXINTA;//McBSP-A

PINTrsvd6_7;

PINTrsvd6_8;

//Group7PIEPeripheralVectors:

PINTDINTCH1;//DMA

PINTDINTCH2;//DMA

PINTDINTCH3;//DMA

PINTDINTCH4;//DMA

PINTDINTCH5;//DMA

PINTDINTCH6;//DMA

PINTrsvd7_7;

PINTrsvd7_8;

//Group8PIEPeripheralVectors:

PINTI2CINT1A;//I2C-A

PINTI2CINT2A;//I2C-A

PINTrsvd8_3;

PINTrsvd8_4;

PINTSCIRXINTC;//SCI-C

PINTSCITXINTC;//SCI-C

PINTrsvd8_7;

PINTrsvd8_8;

//Group9PIEPeripheralVectors:

PINTSCIRXINTA;//SCI-A

PINTSCITXINTA;//SCI-A

PINTSCIRXINTB;//SCI-B

PINTSCITXINTB;//SCI-B

PINTECAN0INTA;//eCAN-A

PINTECAN1INTA;//eCAN-A

PINTECAN0INTB;//eCAN-B

PINTECAN1INTB;//eCAN-B

//Group10PIEPeripheralVectors:

PINTrsvd10_1;

PINTrsvd10_2;

PINTrsvd10_3;

PINTrsvd10_4;

PINTrsvd10_5;

PINTrsvd10_6;

PINTrsvd10_7;

PINTrsvd10_8;

//Group11PIEPeripheralVectors:

PINTrsvd11_1;

PINTrsvd11_2;

PINTrsvd11_3;

PINTrsvd11_4;

PINTrsvd11_5;

PINTrsvd11_6;

PINTrsvd11_7;

PINTrsvd11_8;

//Group12PIEPeripheralVectors:

PINTXINT3;//Externalinterrupt

PINTXINT4;

PINTXINT5;

PINTXINT6;

PINTXINT7;

PINTrsvd12_6;

PINTLVF;//Latchedoverflow

PINTLUF;//Latchedunderflow

};

//---------------------------------------------------------------------------

//PIEInterruptVectorTableExternalReferences&FunctionDeclarations:

//

externstructPIE_VECT_TABLEPieVectTable;

实例说明

voidmain(void)

{

Uint16i;

InitSysCtrl();//初始化系统

DINT;

InitPieCtrl();//初始化PIE

IER=0x0000;

IFR=0x0000;

InitPieVectTable();//实始化中断向量表

EALLOW;

PieVectTable.DINTCH1=&local_DINTCH1_ISR;//这个对就是INT7.Y的第一个位DMA

EDIS;

IER=M_INT7;//M_INT7=0x0040=0100,0000

//打开INT7.Y这个很重要

EnableInterrupts();

}

voidEnableInterrupts()

{

//EnablethePIE

PieCtrlRegs.PIECTRL.bit.ENPIE=1;

//EnablesPIEtodriveapulseintotheCPU

PieCtrlRegs.PIEACK.all=0xFFFF;

//EnableInterruptsattheCPUlevel

EINT;

}

//INT7.1

interruptvoidlocal_DINTCH1_ISR(void)//DMAChannel1

{

//ToreceivemoreinterruptsfromthisPIEgroup,acknowledgethisinterrupt

PieCtrlRegs.PIEACK.all|=PIEACK_GROUP7;

//Nexttwolinesfordebugonlytohalttheprocessorhere

//RemoveafterinsertingISRCode

asm("ESTOP0");

for(;;);

}

 

SCI串口的一般用法

步骤1初始化IO口为串口

voidInitSciaGpio()

{

EALLOW;

GpioCtrlRegs.GPBPUD.bit.GPIO36=0;//SCIRXDA

GpioCtrlRegs.GPBPUD.bit.GPIO35=0;//SCITXDA

GpioCtrlRegs.GPBQSEL1.bit.GPIO36=3;//SCIRXDA

GpioCtrlRegs.GPBMUX1.bit.GPIO35=1;

GpioCtrlRegs

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1