TMS320F28335入門(四)外部中斷

2021-09-26 11:15:23 字數 1619 閱讀 2619

//c28335一共96中斷,可以使用的有58個中斷,其餘保留

//c28335的中斷請求可以分成:

//可遮蔽中斷:通過判斷優先順序選擇是否處理

//不可遮蔽中斷:強制停止cpu程序,進入中斷程式,比如復位和nmi。

//片內中斷源:pwm、cap、qep、timer等

//片外中斷源:外部中斷輸入引腳xint1、xint2引入的訊號

//pie作為中斷管理模組:主要是用來在有限中斷通道的情況下,管理多個中斷源觸發

//pie模組處理int1~int12組中斷源,每組中斷源下包含8路中斷通道(int1.x(x = 1、2、…、8));

//定時器1、2的中斷源分別為int13、int14

//初始化系統函式

initsysctrl();

//禁止cpu中斷

dint;

//初始化pie控制

initpiectrl();

//禁止中斷並清除中斷標誌位

ier = 0; //全域性中斷使能

ifr = 0; //全域性標誌位

//初始化pie向量表

initpievecttable();

//將外部中斷的中斷服務函式對映到中斷向量表

eallow;

pievecttable.xint3 = &xint3_isr;

pievecttable.xint4 = &xint4_isr;

edis;

//清除計數值

xint3count = 0;

xint4count = 0;

loopcount = 0;

//使能cpu級中斷

ier |= m_int12;

//使能pie塊

piectrlregs.piectrl.bit.enpie = 1;

//使能pie 12組 int1 、 int2

piectrlregs.pieier12.bit.intx1 = 1;

piectrlregs.pieier12.bit.intx2 = 1;

//開啟中斷

eint;

//關暫存器寫保護

eallow;

gpiointregs.gpioxint3sel.bit.gpiosel = 0x1c;

gpiointregs.gpioxint4sel.bit.gpiosel = 0x1d;

//開暫存器寫保護

edis;

//配置 xint1

//falling edge interrupt 下降沿中斷

xintruptregs.xint3cr.bit.polarity = 0;

//rising edge interrupt 上公升沿中斷

xintruptregs.xint4cr.bit.polarity = 1;

//使能外部中斷

xintruptregs.xint3cr.bit.enable = 1;

xintruptregs.xint4cr.bit.enable = 1;

//主迴圈

interrupt void xint3_isr(void)

interrupt void xint4_isr(void)

TMS320F28335入門(五)ADC學習

c28335片上有乙個12位的a d轉換器 其前端為2個8選1多路切換器 2路同時取樣保持器 三者共同構成的16路模擬通道輸入 模擬量輸入範圍 0 3v 模擬通道的切換由硬體控制,並將各個通道的轉換順序存入16個結果暫存器中 其轉換率 在25mhz的adc時鐘下為80ns 具有自動排序功能 轉換結果...

TMS320F28335的時鐘介紹

tms320f28335的時鐘介紹 tms320f28335上有乙個基於pll電路的片上時鐘模組,為cpu及外設提供時鐘有兩種方式 一種是用外部的時鐘源,將其連線到x1引腳上或者xclkin引腳上,x2接地 另一種是使用振盪器產生時鐘,用30mhz的晶體和兩個20pf的電容組成的電路分別連線到x1和...

TMS320F28335的時鐘介紹

tms320f28335的時鐘介紹 tms320f28335上有乙個基於pll電路的片上時鐘模組,為cpu及外設提供時鐘有兩種方式 一種是用外部的時鐘源,將其連線到x1引腳上或者xclkin引腳上,x2接地 另一種是使用振盪器產生時鐘,用30mhz的晶體和兩個20pf的電容組成的電路分別連線到x1和...