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

    曙海教育集團論壇開發語言培訓專區C語言開發 → 關于F2812中用C語言來實現中斷的說明


      共有6213人關注過本帖樹形打印

    主題:關于F2812中用C語言來實現中斷的說明

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


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

    關于F2812中用C語言來實現中斷的說明:
    1.首先在.cmd中定位系統中斷表:
    MEMORY
    {
    PAGE 0 :
    ......................................
    PAGE 1 :
    ......................................
    PIE_VECT : origin = 0x000D00, length = 0x000100

    7 @' f# G+ T1 g

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


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

    ) 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文件中)使之能夠為主程序所使用:
    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 *) &圖片點擊可在新窗口打開查看ieVectTableInit;
    Uint32 *Dest = (void *) &圖片點擊可在新窗口打開查看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.中斷服務程序:
    讓以上的數值指向你所要的服務程序,例如:
    PieVectTable.TINT2 = &ISRTimer2;
    那么,ISRTimer2也就成了中斷服務程序,
    ×××切記:一定要在主程序的開始先聲明該程序:
    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單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    關于F2812中用C語言來實現中斷的說明








    簽名
    主站蜘蛛池模板: 久久天天躁狠狠躁夜夜网站| 卡一卡2卡3卡精品网站| xxxxx69hd杨幂| 日本免费a视频| 亚洲熟妇av一区二区三区下载| 精品欧美一区二区精品久久| 国产真实乱子伦xxxx仙踪| 一二三区在线视频| 把女人的嗷嗷嗷叫视频软件| 亚洲国产成人手机在线电影bd| 狠狠色综合网久久久久久| 国产乱码精品一区二区三区中文| 91xav在线| 在线精品免费视频无码的| 丰满少妇好紧多水视频| 日韩a级毛片免费观看| 亚洲欧洲日产国码久在线| 特黄特色大片免费| 国产va免费精品观看精品| 高清国产av一区二区三区| 国产自产在线视频一区| 又大又紧又粉嫩18p少妇 | 黄色a级片在线观看| 国语自产精品视频在线看| 中文字幕丰满乱孑伦无码专区| 日本在线视频一区二区三区| 亚洲成a人片在线观看www| 污网站在线观看视频| 又粗又大又爽又紧免费视频| 色悠久久久久久久综合网| 国产猛男猛女超爽免费视频| 99久久中文字幕伊人| 天堂网www在线观看| 中文字幕丝袜制服| 我想看一级毛片| 久久精品国内一区二区三区| 极品videossex日本妇| 亚洲精品乱码久久久久66| 火车上荫蒂添的好舒服视频| 午夜电影一区二区| 精品熟女碰碰人人a久久|