<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團(tuán)論壇開發(fā)語言培訓(xùn)專區(qū)C語言開發(fā) → 關(guān)于F2812中用C語言來實(shí)現(xiàn)中斷的說明


      共有6216人關(guān)注過本帖樹形打印

    主題:關(guān)于F2812中用C語言來實(shí)現(xiàn)中斷的說明

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個(gè)性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發(fā)短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    關(guān)于F2812中用C語言來實(shí)現(xiàn)中斷的說明  發(fā)帖心情 Post By:2010-12-10 12:04:35

    關(guān)于F2812中用C語言來實(shí)現(xiàn)中斷的說明:
    1.首先在.cmd中定位系統(tǒng)中斷表:
    MEMORY
    {
    PAGE 0 :
    ......................................
    PAGE 1 :
    ......................................
    PIE_VECT : origin = 0x000D00, length = 0x000100

    7 @' f# G+ T1 g

    ......................................
    }


    SECTIONS
    {
    ...................................
    PieVectTable : > PIE_VECT, PAGE = 1
    .....................................
    }
    2.在C中制定該中斷的結(jié)構(gòu)體:
    #pragma DATA_SECTION(PieVectTable,"PieVectTable");
    struct PIE_VECT_TABLE PieVectTable;(在DSP28_GlobalVariableDefs.C中初始化)
    3.用一組常數(shù)(按照中斷向量的順序)初始化該名字為PIE_VECT_TABLE的表:
    typedef interrupt void(*PINT)(void);這里有些一問,一下應(yīng)該為函數(shù)名??

    ) M. w, G3 ^+ v) c* h e5 o

    // Define Vector Table:
    struct PIE_VECT_TABLE {

    : y5 r# r' m( }4 F# \! d! _7 z

    // Reset is never fetched from this table.
    // It will always be fetched from 0x3FFFC0 in either
    // boot ROM or XINTF Zone 7 depending on the state of
    // the XMP/MC input signal. On the F2810 it is always
    // fetched from boot ROM.

    8 r: r, N5 P. b" o$ J2 C6 ]

    PINT PIE1_RESERVED;
    PINT PIE2_RESERVED;
    PINT PIE3_RESERVED;
    PINT PIE4_RESERVED;
    PINT PIE5_RESERVED;
    PINT PIE6_RESERVED;
    PINT PIE7_RESERVED;
    PINT PIE8_RESERVED;
    PINT PIE9_RESERVED;
    PINT PIE10_RESERVED;
    PINT PIE11_RESERVED;
    PINT PIE12_RESERVED;
    PINT PIE13_RESERVED;

    % ^! U6 d* R6 Q9 ?

    // Non-Peripheral Interrupts:
    PINT XINT13; // XINT13
    PINT TINT2; // CPU-Timer2
    PINT DATALOG; // Datalogging interrupt
    PINT RTOSINT; // RTOS interrupt
    PINT EMUINT; // Emulation interrupt
    PINT XNMI; // Non-maskable interrupt
    PINT ILLEGAL; // Illegal operation TRAP
    PINT USER0; // User Defined trap 0
    PINT USER1; // User Defined trap 1
    PINT USER2; // User Defined trap 2
    PINT USER3; // User Defined trap 3
    PINT USER4; // User Defined trap 4
    PINT USER5; // User Defined trap 5
    PINT USER6; // User Defined trap 6
    PINT USER7; // User Defined trap 7
    PINT USER8; // User Defined trap 8
    PINT USER9; // User Defined trap 9
    PINT USER10; // User Defined trap 10
    PINT USER11; // User Defined trap 11

    // Group 1 PIE Peripheral Vectors:
    PINT PDPINTA; // EV-A
    PINT PDPINTB; // EV-B
    PINT rsvd1_3;
    PINT XINT1;
    PINT XINT2;
    PINT ADCINT; // ADC
    PINT TINT0; // Timer 0
    PINT WAKEINT; // WD

    // Group 2 PIE Peripheral Vectors:
    PINT CMP1INT; // EV-A
    PINT CMP2INT; // EV-A
    PINT CMP3INT; // EV-A
    PINT T1PINT; // EV-A
    PINT T1CINT; // EV-A
    PINT T1UFINT; // EV-A
    PINT T1OFINT; // EV-A
    PINT rsvd2_8;

    // Group 3 PIE Peripheral Vectors:
    PINT T2PINT; // EV-A
    PINT T2CINT; // EV-A
    PINT T2UFINT; // EV-A
    PINT T2OFINT; // EV-A
    PINT CAPINT1; // EV-A
    PINT CAPINT2; // EV-A
    PINT CAPINT3; // EV-A
    PINT rsvd3_8;

    // Group 4 PIE Peripheral Vectors:
    PINT CMP4INT; // EV-B
    PINT CMP5INT; // EV-B
    PINT CMP6INT; // EV-B
    PINT T3PINT; // EV-B
    PINT T3CINT; // EV-B
    PINT T3UFINT; // EV-B
    PINT T3OFINT; // EV-B
    PINT rsvd4_8;

    // Group 5 PIE Peripheral Vectors:
    PINT T4PINT; // EV-B
    PINT T4CINT; // EV-B
    PINT T4UFINT; // EV-B
    PINT T4OFINT; // EV-B
    PINT CAPINT4; // EV-B
    PINT CAPINT5; // EV-B
    PINT CAPINT6; // EV-B
    PINT rsvd5_8;

    # c" P/ a, `' g. t' Y' V: l

    // Group 6 PIE Peripheral Vectors:
    PINT SPIRXINTA; // SPI-A
    PINT SPITXINTA; // SPI-A
    PINT rsvd6_3;
    PINT rsvd6_4;
    PINT MRINTA; // McBSP-A
    PINT MXINTA; // McBSP-A
    PINT rsvd6_7;
    PINT rsvd6_8;

    // Group 7 PIE Peripheral Vectors:
    PINT rsvd7_1;
    PINT rsvd7_2;
    PINT rsvd7_3;
    PINT rsvd7_4;
    PINT rsvd7_5;
    PINT rsvd7_6;
    PINT rsvd7_7;
    PINT rsvd7_8;

    ) X+ e1 w- d" o% S5 `1 h# o

    // Group 8 PIE Peripheral Vectors:
    PINT rsvd8_1;
    PINT rsvd8_2;
    PINT rsvd8_3;
    PINT rsvd8_4;
    PINT rsvd8_5;
    PINT rsvd8_6;
    PINT rsvd8_7;
    PINT rsvd8_8;

    . n) v4 d; T, }9 H% Y7 l7 K

    // Group 9 PIE Peripheral Vectors:
    PINT RXAINT; // SCI-A
    PINT TXAINT; // SCI-A
    PINT RXBINT; // SCI-B
    PINT TXBINT; // SCI-B
    PINT ECAN0INTA; // eCAN
    PINT ECAN1INTA; // eCAN
    PINT rsvd9_7;
    PINT rsvd9_8;

    : F: C6 l( m* Y) x

    // Group 10 PIE Peripheral Vectors:
    PINT rsvd10_1;
    PINT rsvd10_2;
    PINT rsvd10_3;
    PINT rsvd10_4;
    PINT rsvd10_5;
    PINT rsvd10_6;
    PINT rsvd10_7;
    PINT rsvd10_8;

    // Group 11 PIE Peripheral Vectors:
    PINT rsvd11_1;
    PINT rsvd11_2;
    PINT rsvd11_3;
    PINT rsvd11_4;
    PINT rsvd11_5;
    PINT rsvd11_6;
    PINT rsvd11_7;
    PINT rsvd11_8;

    ' R0 L2 H0 L4 M e- X0 p

    // Group 12 PIE Peripheral Vectors:
    PINT rsvd12_1;
    PINT rsvd12_2;
    PINT rsvd12_3;
    PINT rsvd12_4;
    PINT rsvd12_5;
    PINT rsvd12_6;
    PINT rsvd12_7;
    PINT rsvd12_8;
    };
    然后在使我們在.cmd文件中定義的表有以上屬性:
    extern struct PIE_VECT_TABLE PieVectTable;(在.h文件中)
    4.初始化該表(在.c文件中)使之能夠?yàn)橹鞒绦蛩褂茫?br/>const struct PIE_VECT_TABLE PieVectTableInit = {

    0 e/ r* {5 P7 u k. \7 a

    PIE_RESERVED, // Reserved space
    PIE_RESERVED,
    PIE_RESERVED,
    PIE_RESERVED,
    PIE_RESERVED,
    PIE_RESERVED,
    PIE_RESERVED,
    PIE_RESERVED,
    PIE_RESERVED,
    PIE_RESERVED,
    PIE_RESERVED,
    PIE_RESERVED,
    PIE_RESERVED,

    # T& u6 w: U0 R# J! j


    // Non-Peripheral Interrupts
    INT13_ISR, // XINT13 or CPU-Timer 1
    INT14_ISR, // CPU-Timer2
    DATALOG_ISR, // Datalogging interrupt
    RTOSINT_ISR, // RTOS interrupt
    EMUINT_ISR, // Emulation interrupt
    NMI_ISR, // Non-maskable interrupt
    ILLEGAL_ISR, // Illegal operation TRAP
    USER0_ISR, // User Defined trap 0
    USER1_ISR, // User Defined trap 1
    USER2_ISR, // User Defined trap 2
    USER3_ISR, // User Defined trap 3
    USER4_ISR, // User Defined trap 4
    USER5_ISR, // User Defined trap 5
    USER6_ISR, // User Defined trap 6
    USER7_ISR, // User Defined trap 7
    USER8_ISR, // User Defined trap 8
    USER9_ISR, // User Defined trap 9
    USER10_ISR, // User Defined trap 10
    USER11_ISR, // User Defined trap 11

    : N' }3 w, d# q7 r

    // Group 1 PIE Vectors
    PDPINTA_ISR, // EV-A
    PDPINTB_ISR, // EV-B
    rsvd_ISR,
    XINT1_ISR,
    XINT2_ISR,
    ADCINT_ISR, // ADC
    TINT0_ISR, // Timer 0
    WAKEINT_ISR, // WD

    _4 }) S" s$ N( k+ k( `5 R# l' T$ @

    // Group 2 PIE Vectors
    CMP1INT_ISR, // EV-A
    CMP2INT_ISR, // EV-A
    CMP3INT_ISR, // EV-A
    T1PINT_ISR, // EV-A
    T1CINT_ISR, // EV-A
    T1UFINT_ISR, // EV-A
    T1OFINT_ISR, // EV-A
    rsvd_ISR,

    // Group 3 PIE Vectors
    T2PINT_ISR, // EV-A
    T2CINT_ISR, // EV-A
    T2UFINT_ISR, // EV-A
    T2OFINT_ISR, // EV-A
    CAPINT1_ISR, // EV-A
    CAPINT2_ISR, // EV-A
    CAPINT3_ISR, // EV-A
    rsvd_ISR,

    // Group 4 PIE Vectors
    CMP4INT_ISR, // EV-B
    CMP5INT_ISR, // EV-B
    CMP6INT_ISR, // EV-B
    T3PINT_ISR, // EV-B
    T3CINT_ISR, // EV-B
    T3UFINT_ISR, // EV-B
    T3OFINT_ISR, // EV-B
    rsvd_ISR,

    // Group 5 PIE Vectors
    T4PINT_ISR, // EV-B
    T4CINT_ISR, // EV-B
    T4UFINT_ISR, // EV-B
    T4OFINT_ISR, // EV-B
    CAPINT4_ISR, // EV-B
    CAPINT5_ISR, // EV-B
    CAPINT6_ISR, // EV-B
    rsvd_ISR,

    ( A( Z, `9 g8 I, i% t% ~: L2 E

    // Group 6 PIE Vectors
    SPIRXINTA_ISR, // SPI-A
    SPITXINTA_ISR, // SPI-A
    rsvd_ISR,
    rsvd_ISR,
    MRINTA_ISR, // McBSP-A
    MXINTA_ISR, // McBSP-A
    rsvd_ISR,
    rsvd_ISR,

    // Group 7 PIE Vectors
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,

    + I( b) D4 S' a5 W

    // Group 8 PIE Vectors
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,

    // Group 9 PIE Vectors
    SCIRXINTA_ISR, // SCI-A
    SCITXINTA_ISR, // SCI-A
    SCIRXINTB_ISR, // SCI-B
    SCITXINTB_ISR, // SCI-B
    ECAN0INTA_ISR, // eCAN
    ECAN1INTA_ISR, // eCAN
    rsvd_ISR,
    rsvd_ISR,

    // Group 10 PIE Vectors
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,

    // Group 11 PIE Vectors
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,

    9 c$ u# B O8 L e- J# ]

    // Group 12 PIE Vectors
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    rsvd_ISR,
    };

    $ l; q3 G X) h) K+ y


    //---------------------------------------------------------------------------
    // InitPieVectTable:
    //---------------------------------------------------------------------------
    // This function initializes the PIE vector table to a known state.
    // This function must be executed after boot time.
    //

    6 I6 S1 Q9 M4 Q) a/ g$ L

    void InitPieVectTable(void)
    {
    int16 i;
    Uint32 *Source = (void *) &圖片點(diǎn)擊可在新窗口打開查看ieVectTableInit;
    Uint32 *Dest = (void *) &圖片點(diǎn)擊可在新窗口打開查看ieVectTable;

    EALLOW;
    for(i=0; i < 128; i++)
    *Dest++ = *Source++;
    EDIS;

    [/ t; }+ q! a6 n9 W/ |

    // Enable the PIE Vector Table
    PieCtrl.PIECRTL.bit.ENPIE = 1;

    }
    5.中斷服務(wù)程序:
    讓以上的數(shù)值指向你所要的服務(wù)程序,例如:
    PieVectTable.TINT2 = &ISRTimer2;
    那么,ISRTimer2也就成了中斷服務(wù)程序,
    ×××切記:一定要在主程序的開始先聲明該程序:
    interrupt void ISRTimer2(void);

    6 U |2 W: o" G; N* r" {/ S# v* C

    .............
    .............
    然后按照您的需要編制該程序:
    interrupt void ISRTimer2(void)
    {
    CpuTimer2.InterruptCount++;
    }

    " z. p8 _* J1 d% v6 t8 q. o: W$ p

    支持(0中立(0反對(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

    關(guān)于F2812中用C語言來實(shí)現(xiàn)中斷的說明








    簽名
    主站蜘蛛池模板: 国产精品美女视视频专区| 欧洲吸奶大片在线看| 国产成人无码精品一区不卡 | 绿巨人黑科技地址入口| 国产精品久久久久电影| 一求乳魂h肉动漫在线观看| 日本一区二区三区不卡在线视频| 亚洲欧美日韩中文无线码| 男人与禽交的方法| 国产三级日产三级韩国三级韩级| 5566中文字幕| 在线免费不卡视频| 中文字幕一精品亚洲无线一区| 日韩人妻无码精品专区 | 成人Av无码一区二区三区| 亚洲AV综合色区无码二区爱AV| 欧美精品偷自拍另类在线观看 | 日本二区在线观看| 亚洲免费视频网址| 欧美日韩午夜视频| 免费看欧美一级特黄a大片一| 美女扒开屁股让男人桶| 国产成人午夜高潮毛片| 91情国产l精品国产亚洲区| 天使萌一区二区在线观看| 中文字幕无码视频专区| 日本乱人伦在线观看免费| 亚洲一区二区三区高清视频| 欧美巨大黑人精品videos| 偷看农村妇女牲交| 福利一区二区三区视频午夜观看 | 国产人成无码视频在线观看| 黑人啊灬啊灬啊灬快灬深| 国产色在线com| www视频免费| 婷婷六月久久综合丁香76| 久久久精品日本一区二区三区| 日韩一区二区免费视频| 亚洲午夜电影在线观看高清| 欧美成人黄色片| 伊人久久大香线蕉av五月天|