关于f2812中用c语言来实现中断的说明

关于f2812中用c语言来实现中断的说明

ID:8985887

大小:15.83 KB

页数:2页

时间:2018-04-14

关于f2812中用c语言来实现中断的说明_第1页
关于f2812中用c语言来实现中断的说明_第2页
资源描述:

《关于f2812中用c语言来实现中断的说明》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、关于F2812中用C语言来实现中断的说明(不带DSP/BIOS)(一)关于F2812中用C语言来实现中断的说明:1.首先在.cmd中定位系统中断表:MEMORY{PAGE0:......................................PAGE1:......................................PIE_VECT:origin=0x000D00,length=0x000100......................................}SECTIONS{...............................

2、....PieVectTable:>PIE_VECT,PAGE=1.....................................}2.在C中制定该中断的结构体:#pragmaDATA_SECTION(PieVectTable,"PieVectTable");structPIE_VECT_TABLEPieVectTable;(在DSP28_GlobalVariableDefs.C中初始化)3.在DSP281x_PieVect.h中定义中断向量表PIE_VECT_TABLE,共96个成员,每个成员均为void(*PINT)(void),中断指针型。//PIEIn

3、terruptVectorTableDefinition://CreateausertypecalledPINT(pointertointerrupt):typedefinterruptvoid(*PINT)(void);//DefineVectorTable:structPIE_VECT_TABLE{//Resetisneverfetchedfromthistable.  Itwillalwaysbefetchedfrom0x3FFFC0in//eitherbootROMorXINTFZone7dependingonthestateoftheXMP/MCinput//

4、signal.OntheF2810itisalwaysfetchedfrombootROM.。。。。。。。。。(略)。。。。。。。。//Non-PeripheralInterrupts:。。。。。。。。。(略)。。。。。。。。//Group12PIEPeripheralVectors:。。。。。。。。。(略)。。。。。。。。};然后定义外部PIE_VECT_TABLE结构体变量PieVectTable:externstructPIE_VECT_TABLEPieVectTable;(在.h文件中)4.在DSP281x_PieVect.c文件中初始化该表使之能够为主程序所使

5、用:(1)先定义一个PIE_VECT_TABLE结构体常量:conststructPIE_VECT_TABLEPieVectTableInit={。。。。。。。。。(略)。。。。。。。。PIE_RESERVED。。。。。。。。。(略)。。。。。。。。注此处用到的所有中断向量或者说是中断函数的指针均是在DSP281x_DefaultIsr.c中定义的空函数(指针)};(2)用以上PIE_VECT_TABLE结构体常量PieVectTableInit初始化PIE_VECT_TABLE结构体变量PieVectTable//InitPieVectTable://Thisfunc

6、tioninitializesthePIEvectortabletoaknownstate.//Thisfunctionmustbeexecutedafterboottime.voidInitPieVectTable(void){int16i;Uint32*Source=(void*)&PieVectTableInit;Uint32*Dest=(void*)&PieVectTable;EALLOW;for(i=0;i<128;i++)*Dest++=*Source++;EDIS;//EnablethePIEVectorTablePieCtrl.PIECRTL.bit.E

7、NPIE=1;}5.自己的中断服务程序:用自己定义的中断函数覆盖PIE_VECT_TABLE结构体变量PieVectTable中对应的中断指针即可。PieVectTable.TINT2=&ISRTimer2;那么,ISRTimer2也就成了中断服务程序,要在主程序的开始先声明该程序:interruptvoidISRTimer2(void);然后按照您的需要编制该程序:interruptvoidISRTimer2(void){CpuTimer2.InterruptCount++;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。