當(dāng)前位置:首頁(yè) > 技術(shù)學(xué)院 > 熱搜器件
[導(dǎo)讀]最近學(xué)習(xí)MSP430,把自己的一些經(jīng)驗(yàn)分享下,這是我在網(wǎng)上發(fā)現(xiàn)的一篇很不錯(cuò)的文章,歸納得很好,簡(jiǎn)潔明了。1.MSP430開(kāi)發(fā)環(huán)境建立1.安裝IAR dor msp430 軟件,軟件帶USB仿真器的驅(qū)動(dòng)。2.插入U(xiǎn)SB仿真器,驅(qū)動(dòng)選擇安裝目錄

最近學(xué)習(xí)MSP430,把自己的一些經(jīng)驗(yàn)分享下,這是我在網(wǎng)上發(fā)現(xiàn)的一篇很不錯(cuò)的文章,歸納得很好,簡(jiǎn)潔明了。

1.MSP430開(kāi)發(fā)環(huán)境建立

1.安裝IAR dor msp430 軟件,軟件帶USB仿真器的驅(qū)動(dòng)。

2.插入U(xiǎn)SB仿真器,驅(qū)動(dòng)選擇安裝目錄的/drivers/TIUSBFET

3.建立一個(gè)工程,選擇"option"選項(xiàng),設(shè)置

a、選擇器件,在"General"項(xiàng)的"Target"標(biāo)簽選擇目標(biāo)器件

b、選擇輸出仿真,在"Linker"項(xiàng)里的"Output"標(biāo)簽,選擇輸出"Debug information for C-SPY",以輸出調(diào)試

信息用于仿真。

c、若選擇"Other",Output下拉框選擇"zax-m"即可以輸出hex文件用以燒錄,注意,此時(shí)仿真不了。

d、選擇"Debugger"項(xiàng)的"Setup"標(biāo)簽,"Driver"下拉框選擇"FET Debugger"

e、選擇"FET Debugger"項(xiàng)的"Setup"標(biāo)簽,"Connection"下拉框選擇"Texas Instrument USB-I"

4.仿真器的接口,從左到右分別為 " GND,RST,TEST,VCC"

2.IO口

數(shù)字輸入/輸出端口有下列特性:

□ 每個(gè)輸入/輸出位都可以獨(dú)立編程。

□ 允許任意組合輸入、輸出。

□ P1 和 P2 所有 8 個(gè)位都可以分別設(shè)置為中斷。

□ 可以獨(dú)立操作輸入和輸出數(shù)據(jù)寄存器。

□ 可以分別設(shè)置上拉或下拉電阻。

在介紹這四個(gè)I/O口時(shí)提到了一個(gè)“上拉電阻”那么上拉電阻又是一個(gè)什么東東呢?他起什么作用呢?都說(shuō)了是電阻那當(dāng)然就是一個(gè)電阻啦,當(dāng)作為輸入時(shí),上拉電阻將其電位拉高,若輸入為低電平則可提供電流源;所以如果P0口如果作為輸入時(shí),處在高阻抗?fàn)顟B(tài),只有外接一個(gè)上拉電阻才能有效。

(以下x為1表示P1,為2表示P2,如此類推)

1.選擇引腳功能 -- PxSEL,PxSEL2

PxSEL2 PxSEL 管腳功能

0 0 用作IO口

0 1 用作第一功能引腳

1 0 保留,參考具體型號(hào)的手冊(cè)

1 1 用作第二功能引腳

設(shè)置引腳用作外設(shè)功能時(shí),芯片不會(huì)自動(dòng)設(shè)置該引腳輸入輸出方向,要根據(jù)該功能,用戶自己設(shè)置方向寄存器

PxDIR。

2.選擇引腳輸入/輸出方向 -- PxDIR

Bit = 0: 輸入

Bit = 1: 輸出

3.選擇引腳是否使能上下拉電阻 -- PxREN

Bit = 0: 不使能

Bit = 1: 使能

4.輸出寄存器 -- PxOUT

Bit = 0: 輸出低電平或者下拉

Bit = 1: 輸出高電平或者上拉

5.管腳狀態(tài)寄存器 -- PxIN

Bit = 0: 管腳當(dāng)前為低

Bit = 1: 管腳當(dāng)前為高

你說(shuō)的“第二功能”應(yīng)該是指外圍模塊功能吧,用模塊就選“第二功能”,不用模塊就選“第一功能”。 可通過(guò)設(shè)置PxSEL寄存器進(jìn)行選擇,某位寫(xiě)“0”為I/O;寫(xiě)“1”為“第二功能”。 用到比較器(片內(nèi)外圍模塊)時(shí)要設(shè)置為第二功能。 當(dāng)然你如果是用片外的比較器,將其輸出的高低電平(1或0)送給MSP430,那就選“第一功能”。

http://zhidao.baidu.com/question/172451580.html?an=0&si=3

3.Base clock 模塊

一、4個(gè)時(shí)鐘振蕩源

1、LFXT1CLK: 外部晶振或時(shí)鐘1 低頻時(shí)鐘源 低頻模式:32768Hz 高頻模式:(400KHz-16MHz)

2、XT2CLK: 外部晶振或時(shí)鐘2 高頻時(shí)鐘源(400KHz-16MHz)

3、DCOCLK: 內(nèi)部數(shù)字RC振蕩器,復(fù)位值1.1MHz

4、VLOCLK: 內(nèi)部低功耗振蕩器 12KHz

注:MSP430x20xx: LFXT1 不支持 HF 模式, XT2 不支持, ROSC 不支持.

二、3個(gè)系統(tǒng)時(shí)鐘

1、ACLK: 輔助時(shí)鐘

復(fù)位: LFXT1CLK的LF模式,內(nèi)部電容6pF

分頻: 1/2/4/8

時(shí)鐘源:LFXT1CLK/VLOCLK.

用途: 獨(dú)立外設(shè),一般用于低速外設(shè)

2、MCLK: 主時(shí)鐘

復(fù)位: DCOCLK,1.1MHz

分頻: 1/2/4/8

時(shí)鐘源:LFXT1CLK/VLOCLK/XT2CLK/DCOCLK

用途: CPU,系統(tǒng)

3、SMCLK: 子系統(tǒng)時(shí)鐘

復(fù)位: DCOCLK,1.1MHz

分頻: 1/2/4/8

時(shí)鐘源:LFXT1CLK/VLOCLK/XT2CLK/DCOCLK

用途: 獨(dú)立外設(shè),一般用于高速外設(shè)

三、寄存器

1、DCOCTL:DCO控制寄存器(讀寫(xiě))

學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" alt="[轉(zhuǎn)載]【msp430 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" width=33 height=33>

DCOx:定義8種頻率之一,可分段調(diào)節(jié)DCOCLK的頻率,相鄰兩種頻率相差10%。而頻率又注入直流發(fā)生器

的電流定義。

MODx: 位調(diào)節(jié)器選擇。這幾位決定在 32 個(gè) DCOCLK 周期內(nèi)插入高1段頻率 fDCO+1的次數(shù)。當(dāng)

DCOX=7,已為最高段頻率,此時(shí)不能用MODx作為頻率調(diào)整。

2、BCSCTL1:基礎(chǔ)時(shí)鐘系統(tǒng)控制寄存器1

學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" alt="[轉(zhuǎn)載]【msp430 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" width=33 height=33>

XT2OFF:是否關(guān)閉XT2

0:打開(kāi)XT2 ,1:關(guān)閉XT2

XTS: XT2模式選擇

0:LF mode (低頻模式) ,1:HF mode (高頻模式)

DIVA: ACLK的分頻選擇 0-3 對(duì)應(yīng) 1/2/4/8 分頻

RSELx: 選擇DCO中16種標(biāo)稱的頻率,實(shí)際對(duì)應(yīng)16個(gè)內(nèi)部電阻

0-15 對(duì)應(yīng)的頻率 從 低到高,當(dāng) DCOR=1 時(shí),表示選用外接電阻,所以RSELx無(wú)效

3、BCSCTL2:基礎(chǔ)時(shí)鐘系統(tǒng)控制寄存器2

學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" alt="[轉(zhuǎn)載]【msp430 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" width=33 height=33>

SELMx:選擇MCLK的時(shí)鐘源

0:DCOCLK

1:DCOCLK

2:當(dāng) XT2 振蕩器在片內(nèi)時(shí)采用 XT2CLK。當(dāng) XT2 振蕩器不在片內(nèi)時(shí)采用 LFXT1CLK 或 VLOCLK

3:LFXT1CLK 或 VLOCLK

DIVMx: MCLK的分頻選擇 0-3 對(duì)應(yīng) 1/2/4/8 分頻

SELS: 選擇SMCLK的時(shí)鐘源[!--empirenews.page--]

0:DCOCLK

1:當(dāng) XT2 振蕩器存在時(shí)選用 XT2CLK,當(dāng) XT2 振蕩器不存在時(shí)采用 LFXT1CLK 或 VLOCLK

DIVSx: SMCLK的分頻選擇 0-3 對(duì)應(yīng) 1/2/4/8 分頻

DCOR: 0:DCOCLK使用內(nèi)部電阻、 1:DCOCLK使用外接電阻

4、BCSCTL3:基礎(chǔ)時(shí)鐘系統(tǒng)控制寄存器3

學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" alt="[轉(zhuǎn)載]【msp430 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" width=33 height=33>

XT2Sx:XT2范圍選擇

0:0.4-1MHz 晶體或振蕩器

1:1-3MHz 晶體或振蕩器

2:3-16MHz 晶體或振蕩器

3:0.4-16MHz外部數(shù)字時(shí)鐘源

LFXT1Sx: 低頻時(shí)鐘選擇和 LFXT1 范圍選擇。當(dāng) XTS=0 時(shí)在 LFXT1 和 VLO之間選擇。當(dāng) XTS=1 時(shí)選

擇 LFXT1 的頻率范圍。

0:LFXT1上的 32768Hz 晶體

1:保留

2:VLOCLK(MSP430X21X1 器件上保留)

3:外部數(shù)字時(shí)鐘信源

XCAPx:振蕩器電容選擇。這些位選擇當(dāng) XTS=0 時(shí)用于 LFXT1 的有效電容。

0:1pF

1:6pF

2:10pF

3:12.5pF

XT2OF:XT2振蕩器是否失效

0:有效,正在工作

1:無(wú)效,未正常工作

LFXT1OF:LFXT1振蕩器是否失效

0:有效,正在工作

1:無(wú)效,未正常工作

5、IE1:中斷使能寄存器 1

學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" alt="[轉(zhuǎn)載]【msp430 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" width=33 height=33>

OFIE:振蕩器失效中斷使能。該位使 OFIFG 中斷使能。由于 IE1 的其它位

用于其它模塊,因此采用 BIS.B 或 BIC.B 指令來(lái)設(shè)置或清零該位比

用 MOV.B 或 CLR.B 更合適。

6、IFG1:中斷標(biāo)志寄存器 1

學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" alt="[轉(zhuǎn)載]【msp430 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" width=33 height=33>

OFIFG:振蕩器失效中斷標(biāo)志。由于 IFG1 的其它位用于其它模塊,因此

采用 BIS.B 或 BIC.B 指令來(lái)設(shè)置或清零該位比用 MOV.B 或

CLR.B 更合適。

0:沒(méi)有未被響應(yīng)的中斷

1:有未被響應(yīng)的中斷

四、DCO頻率

學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" alt="[轉(zhuǎn)載]【msp430 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" width=33 height=33>

4種頻率經(jīng)校準(zhǔn)精度為±1%

4. 定時(shí)器TA

一、時(shí)鐘源

1、時(shí)鐘源:ACLK/SMCLK 外部TACLK/INCLK

2、分頻:1/2/4/8 當(dāng) (注:TACLR 置位時(shí),分頻器復(fù)位)

二、計(jì)數(shù)模式

通過(guò)設(shè)置MCx可以設(shè)置定時(shí)器的計(jì)數(shù)模式

學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" alt="[轉(zhuǎn)載]【msp430 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" width=592 height=102>

1、停止模式:停止計(jì)數(shù)

2、單調(diào)增模式:定時(shí)器循環(huán)地從0增加到TACCR0值

周期 :TACCR0

CCIFG :Timer計(jì)到TACCR0值時(shí)觸發(fā)

TAIFG :Timer計(jì)到0時(shí)觸發(fā)

3、連續(xù)模式 :定時(shí)器循環(huán)從0連續(xù)增加到0xFFFF

周期 :0x10000

TAIFG :Timer計(jì)到0時(shí)觸發(fā)

4、增減模式 :定時(shí)器增計(jì)數(shù)到TACCR0 再?gòu)?TACCR0 減計(jì)數(shù)到 0

周期 :TACCR0值的2倍

CCIFG :Timer計(jì)到TACCR0值時(shí)觸發(fā)

TAIFG :Timer計(jì)到0時(shí)觸發(fā)

三、定時(shí)器A TACCRx 比較模式 (用于輸出和產(chǎn)生定時(shí)中斷)

1、設(shè)置:CAP=0選擇比較

2、輸出信號(hào):比較模式用于選擇 PWM 輸出信號(hào)或在特定的時(shí)間間隔中斷。當(dāng) TAR 計(jì)數(shù)

到 TACCRx 的值時(shí):

a、中斷標(biāo)志 CCIFG=1;

b、內(nèi)部信號(hào) EQUx=1;

c、EQUx 根據(jù)輸出模式來(lái)影響輸出信號(hào)

d、輸入信號(hào) CCI 鎖存到 SCCI

每個(gè)捕獲比較模塊包含一個(gè)輸出單元。輸出單元用于產(chǎn)生如 PWM 這樣的信號(hào)。每個(gè)輸出單元可以根據(jù)

EQU0 和 EQUx 產(chǎn)生 8 種模式的信號(hào)。

3、中斷

TimerA 有 2 個(gè)中斷向量:

a、TACCR0 CCIFG 的 TACCR0 中斷向量

b、所有其他 CCIFG 和 TAIFG 的 TAIV 中斷向量

在捕獲模式下,當(dāng)一個(gè)定時(shí)器的值捕獲到相應(yīng)的 TACCRx 寄存器時(shí), CCIFG 標(biāo)志置位。

在比較模式下,如果 TAR 計(jì)數(shù)到相應(yīng)的 TACCRx 值時(shí),CCIFG 標(biāo)志置位。軟件可以清除或置

位任何一個(gè) CCIFG 標(biāo)志。當(dāng)響應(yīng)的 CCIE 和 GIE 置位時(shí), CCIFG 標(biāo)志就會(huì)產(chǎn)生一個(gè)中斷。

c、TACCR0 CCIFG 標(biāo)志擁有定時(shí)器 A 的最高中斷優(yōu)先級(jí),并有一個(gè)專用的中斷向量,

當(dāng)進(jìn)入 TACCR0 中斷后,TACCR0 CCIFG 標(biāo)志自動(dòng)復(fù)位。

d、TACCR1 CCIFG, TACCR2 CCIFG, 和 TAIFG 標(biāo)志共用一個(gè)中斷向量。中斷向量寄存器 TAIV

用于確定它們中的哪個(gè)要求響應(yīng)中斷。最高優(yōu)先級(jí)的中斷在 TAIV 寄存器中產(chǎn)生一個(gè)數(shù)字(見(jiàn)

寄存器說(shuō)明),這個(gè)數(shù)字是規(guī)定的數(shù)字,可以在程序中識(shí)別并自動(dòng)進(jìn)入相應(yīng)的子程序。禁止定時(shí)

器 A 中斷不會(huì)影響 TAIV 的值。

對(duì) TAIV 的讀寫(xiě)會(huì)自動(dòng)復(fù)位最高優(yōu)先級(jí)的掛起中斷標(biāo)志。如果另一個(gè)中斷標(biāo)志置位,在結(jié)

束原先的中斷響應(yīng)后會(huì),該中斷響應(yīng)立即發(fā)生。例如,當(dāng)中斷服務(wù)子程序訪問(wèn) TAIV 時(shí),如果

TACCR1 和 TACCR2 CCIFG 標(biāo)志位置位,TACCR1 CCIFG 自動(dòng)復(fù)位。在中斷服務(wù)子程序的 RETI

命令執(zhí)行后,TACCR2 CCIFG 標(biāo)志會(huì)產(chǎn)生另一個(gè)中斷。

四、TimerA的捕獲模式

1、設(shè)置:CAP=1選擇捕獲, CCISx位設(shè)置捕獲的信號(hào)源,CMx位選擇捕獲的沿,上升,下降,或上升下降都

捕獲。

2、如果一個(gè)第二次捕獲在第一次捕獲的值被讀取之前發(fā)生,捕獲比較寄存器就會(huì)產(chǎn)生一個(gè)溢出邏輯,COV

位在此時(shí)置位,如圖 8-11,COV 位必須軟件清除。

五、寄存器

1、TACTL:TimerA控制寄存器

學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" alt="[轉(zhuǎn)載]【msp430 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" width=30 height=30>

TASSELx:TA時(shí)鐘源選擇

0:TACLK;1:ACLK;2:SMCLK;3:INCLK

IDx: 輸入分頻,分時(shí)鐘源分頻再輸入TimerA

0/1/2/3:1/2/4/8 分頻

MCx: 模式控制

0:停止定時(shí)器;1:增模式,定時(shí)器計(jì)數(shù)到TACCR0;[!--empirenews.page--]

2:連續(xù)模式,定時(shí)器計(jì)數(shù)到0xFFFF;3:增減模式,0->TACCR0->0

TACLR: 定時(shí)器清零位。該位置位會(huì)復(fù)位 TAR,時(shí)鐘分頻和計(jì)數(shù)方向。TACLR位會(huì)自動(dòng)復(fù)位并讀出值為0

TAIE: TA 中斷允許。該位允許 TAIFG 中斷請(qǐng)求

0:中斷禁止;1:中斷允許

TAIFG: TA中斷標(biāo)記

0:無(wú)中斷掛起;1:中斷掛起

2、TAR:TimerA計(jì)數(shù)寄存器

學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" alt="[轉(zhuǎn)載]【msp430 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" width=30 height=30>

3、TACCTLx:捕獲比較控制寄存器

學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" alt="[轉(zhuǎn)載]【msp430 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" width=30 height=30>

CMx:捕獲模式

0:不捕獲 ;1:上升沿捕獲;2:下降沿捕獲 ;3:上升和下降沿都捕獲

CCISx:捕獲比較選擇,該位選擇 TACCRx 的輸入信號(hào)

0:CCIxA;1:CCIxB;2:GND;3:VCC

SCS:同步捕獲源,該位用于將捕獲通信和時(shí)鐘同步

0:異步捕獲;1:同步捕獲

SCCI:同步的捕獲/比較輸入,所選擇的 CCI 輸入信號(hào)由 EQUx 信號(hào)鎖存,并可通過(guò)該位讀取

CAP:捕獲模式

0:比較模式;1:捕獲模式

OUTMODx:輸出模式位。由于在模式 2,3,6 和 7 下 EQUx= EQU0,因此這些模式對(duì) TACCR0 無(wú)效

0:OUT 位的值;1:置位;2:翻轉(zhuǎn)/復(fù)位;3:置位/復(fù)位

4:翻轉(zhuǎn);5:復(fù)位;6:翻轉(zhuǎn)/置位;7:復(fù)位/置位

CCIE:捕獲比較中斷允許位,該位允許相應(yīng)的 CCIFG 標(biāo)志中斷請(qǐng)求

0:中斷禁止;1:中斷允許

CCI:捕獲比較輸入。所選擇的輸入信號(hào)可以通過(guò)該位讀取

OUT:對(duì)于輸出模式 0,該位直接控制輸出狀態(tài)

0:輸出低電平;1:輸出高電平

COV:捕獲溢出位。該位表示一個(gè)捕獲溢出發(fā)生。COV 必須由軟件復(fù)位。

0:沒(méi)有捕獲溢出發(fā)生;1:有捕獲溢出發(fā)生

CCIFG:捕獲比較中斷標(biāo)志位

0:沒(méi)有中斷掛起;1:有中斷掛起

4、TAIV:TimerA中斷向量寄存器

學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" alt="[轉(zhuǎn)載]【msp430 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)】" width=30 height=30>

寄存器的值:

0:無(wú)中斷掛起;

2:捕獲比較1 TACCR1 CCIFG;

4:捕獲比較2 TACCR2 CCIFG;

0xA:定時(shí)器溢出 TAIFG

5.MSP430中斷嵌套機(jī)制

(1)430默認(rèn)的是關(guān)閉中斷嵌套的,除非你在一個(gè)中斷程序中再次開(kāi)總中斷EINT。

(2)當(dāng)進(jìn)入中斷程序時(shí),只要不在中斷中再次開(kāi)中斷,剛總中斷是關(guān)閉的,此時(shí)來(lái)中斷不管是比當(dāng)前中斷的優(yōu)先級(jí)高還是低都不執(zhí)行。

(3)若在中斷A中開(kāi)了總中斷,剛可以響應(yīng)后來(lái)的中斷B(不管B的優(yōu)先級(jí)比A高還是低),B執(zhí)行完現(xiàn)繼續(xù)執(zhí)行。注意:進(jìn)入中斷B生總中斷同樣也會(huì)關(guān)閉,如果B中斷程序執(zhí)行時(shí)需響應(yīng)中斷C,則此時(shí)也要開(kāi)總中斷,若不需響應(yīng)中斷,則不用開(kāi)中斷,B執(zhí)行完后中跳出中斷程序進(jìn)入A程序時(shí),總中斷會(huì)自動(dòng)打開(kāi)。

(4)若在中斷中開(kāi)了總中斷,后來(lái)的中斷同時(shí)有多個(gè),則會(huì)按優(yōu)先級(jí)來(lái)執(zhí)行,即中斷優(yōu)先級(jí)只有在多個(gè)中斷同時(shí)到來(lái)才起做用!中斷服務(wù)不執(zhí)行搶先原則。

(5)對(duì)于單源中斷,只要響應(yīng)中斷,系統(tǒng)硬件自動(dòng)清中斷標(biāo)志位,對(duì)于TA/TB定時(shí)器的比較/捕獲中斷,只要訪問(wèn)TAIV/TBIV,標(biāo)志位倍被自動(dòng)清除;對(duì)于多源中斷要手動(dòng)清標(biāo)志位,比如P1/P2口中斷,要手工清除相應(yīng)的標(biāo)志,如果在這種中斷用“EINT();”開(kāi)中斷,而在打開(kāi)中斷前沒(méi)有清標(biāo)志,就會(huì)有相同的中斷不斷嵌入,而導(dǎo)致堆棧溢出引起復(fù)位,所以在這類中斷必須先清標(biāo)志現(xiàn)打開(kāi)中斷開(kāi)關(guān)。

6.關(guān)于MSP430中斷機(jī)制--我的理解

因DC的邀請(qǐng)寫(xiě)一個(gè)有關(guān)中斷的東東,我也接觸430不久只能以自己的心得體會(huì)更大家分享,若有紕漏懇請(qǐng)見(jiàn)諒。MSP430用戶手冊(cè)上有的中斷介紹我就不贅述了,大家可以看User Guider.我講的主要是書(shū)上沒(méi)有的,或者是點(diǎn)的不透的。希望對(duì)大家有用。

1.中斷嵌套,優(yōu)先級(jí)

430總中斷的控制位是狀態(tài)寄存器內(nèi)的GIE位(該位在SR寄存器內(nèi)),該位在復(fù)位狀態(tài)下,所有的可屏蔽中斷都不會(huì)發(fā)生響應(yīng)??善帘沃袛嘤址譃閱沃袛嘣春投嘀袛嘣吹摹沃袛嘣吹囊话沩憫?yīng)了中斷服務(wù)程序中斷標(biāo)志位就自動(dòng)清零,而多中斷源的則要求查詢某個(gè)寄存器后中斷標(biāo)志位才會(huì)清零。由于大多數(shù)人接觸的第一款單片機(jī)通常是51,51單片機(jī)CPU在響應(yīng)低優(yōu)先級(jí)的中斷程序過(guò)程中若有更高優(yōu)先級(jí)的中斷發(fā)生,單片機(jī)就會(huì)去執(zhí)行高優(yōu)先級(jí),這個(gè)過(guò)程已經(jīng)產(chǎn)生了中斷嵌套。而430單片機(jī)則不同,如果在響應(yīng)低優(yōu)先級(jí)中斷服務(wù)程序的時(shí)候,即使來(lái)了更高優(yōu)先級(jí)的中斷服務(wù)請(qǐng)求,430也會(huì)置之不理,直至低優(yōu)先級(jí)中斷服務(wù)程序執(zhí)行完畢,才會(huì)去響應(yīng)高優(yōu)先級(jí)中斷。這是因?yàn)?30在響應(yīng)中斷程序的時(shí)候,總中斷GIE是復(fù)位狀態(tài)的,如果要產(chǎn)生類似51的中斷嵌套,只能在中斷函數(shù)內(nèi)再次置位GIE位。

2.定時(shí)器TA

TimerA有2個(gè)中斷向量。TIMERA0,TIMERA1

TIMERA0只針對(duì)CCR0的計(jì)數(shù)溢出

TIMERA1再查詢TAIV后可知道是CCR1,還是CCR2,亦或TAIFG引起的,至于TAIFG是什么情況下置位的,則要看TA工作的模式

具體看用戶手冊(cè)。還有一點(diǎn)TA本身有PWM輸出功能,無(wú)須借用中斷功能。在這個(gè)問(wèn)題上經(jīng)常出現(xiàn)應(yīng)用彎路的是如何結(jié)合TA和AD實(shí)行定時(shí)采樣的問(wèn)題,很多人都是在TA中斷里打開(kāi)AD這樣來(lái)做。這是不適宜的,因?yàn)?30 的ADC10,ADC12(SD16不熟悉,沒(méi)發(fā)言權(quán))模塊均有脈沖采樣模式和擴(kuò)展采樣模式。只要選擇AD是由TA觸發(fā)采樣,然后把TA設(shè)置成PWM輸出模式,當(dāng)然輸出PWM波的都是特殊功能腳,但是在這里它是不需要輸出的,所以引腳設(shè)置不必理會(huì)。值得關(guān)心的就是PWM的頻率,也就是你AD的采樣率。

3.看門(mén)狗復(fù)位

看門(mén)狗有2種工作模式:定時(shí)器 ,看門(mén)狗

定時(shí)器工作模式下WDTIFG在響應(yīng)中斷服務(wù)程序有標(biāo)志位自動(dòng)復(fù)位,而在看門(mén)狗模式下,該標(biāo)志位只能軟件清零。但是怎么判斷復(fù)位是由于WDT工作在看門(mén)狗模式下的定時(shí)溢出引起的,還是看門(mén)狗寫(xiě)密鑰錯(cuò)誤引起的呢?………………………………

答案是沒(méi)有方法,至少我沒(méi)見(jiàn)過(guò)有什么方法,也沒(méi)見(jiàn)過(guò)周邊的人有什么方法。若有人知道方法謝謝分享。[!--empirenews.page--]

4.經(jīng)常有人會(huì)問(wèn)這個(gè)語(yǔ)句的MOV.B #LPM0,0(SP)的作用。假如你在進(jìn)入中斷函數(shù)之前,430是在LPM0下待機(jī),若要求執(zhí)行完中斷函數(shù)之后進(jìn)入LPM3待機(jī),在中斷函數(shù)里寫(xiě)MOV.B #LPM3,SR是無(wú)效的。因?yàn)樵谶M(jìn)入中斷時(shí)430會(huì)把PC,SR壓棧,( SR內(nèi)保存著低功耗模式的設(shè)置)即使你寫(xiě)了MOV.B #LPM3,SR,在退出中斷出棧時(shí)SR會(huì)被重新設(shè)置成低功耗0,要達(dá)到這樣的目的,只能更改堆棧內(nèi)SR的設(shè)置:MOV.B #LPM0,0(SP)。

5中斷向量:

430的中斷向量是FFE0H—FFFFH,一共32個(gè)字節(jié)也就是FLASH的最后一段,430的FLASH有大有小,但是最后地址肯定是FFFFH(大FLASH超過(guò)64K的除外)所以它們的起始地址是不一樣的,而一般IAR默認(rèn)編譯都是把程序放在FLASH開(kāi)始的位置(不包括信息段)。

有個(gè)值得弄清楚的問(wèn)題是:什么是中斷向量?中斷向量實(shí)際就是保存中斷函數(shù)入口地址的存儲(chǔ)單元空間。就像FFFEH+FFFFH這2個(gè)字節(jié)是復(fù)位中斷向量,那么它存儲(chǔ)的就是主函數(shù)在FLASH內(nèi)的起始地址,假如主函數(shù)保存在以0x1100為起始地址的FLASH塊內(nèi),那么你會(huì)發(fā)現(xiàn)FFFFH 內(nèi)保存的是0x11, FFFE內(nèi)保存的是0x00.其他什么TimerA,ADC12,所有的都一樣。只是你每次寫(xiě)的程序長(zhǎng)短不一,中斷函數(shù)放的位置不一樣。IAR編譯器都會(huì)給你定好,然后在你用JTAG燒寫(xiě)程序的時(shí)候,把這個(gè)地址,燒寫(xiě)到相應(yīng)的中斷向量。因?yàn)橹袛嗪瘮?shù)所處地址可以由用戶自定義,也可以讓IAR自動(dòng)編譯,所以這個(gè)地址除了源代碼開(kāi)發(fā)人員知道,其他人是不知道的,BSL就是應(yīng)用這32個(gè)字節(jié)的中斷向量?jī)?nèi)的內(nèi)容的特殊性設(shè)置的密碼。但是有幾個(gè)東西在430是不變的,就是觸發(fā)中斷的條件滿足后,它到哪個(gè)地方去尋址中斷服務(wù)函數(shù)的入口地址,是TI 在做430時(shí)就固化好,定死的。比方說(shuō)上電復(fù)位的時(shí)候,它知道去FFFE,FFFF單元找地址,而不去FFE0,FFE2找地址,這個(gè)映射關(guān)系是430固化不變的??捎械臅r(shí)候你就是需要改變“中斷向量”,這怎么辦?430FLASH程序自升級(jí)里有時(shí)就會(huì)碰到這個(gè)問(wèn)題,方法是在430原來(lái)默認(rèn)的中斷向量表內(nèi)做一個(gè)跳轉(zhuǎn)操作,同樣以上電復(fù)位為例:

ORG 0x2345

PowerReset: mov.w &0xFCFE,PC

…………………………

…………………………

ORG 0xFFFE

DW PowerReset

這樣的話0xFCFE就相當(dāng)是0xFFFE的映射了。這個(gè)在430程序自升級(jí)的TI應(yīng)用報(bào)告里就有。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉