MSP430的CCRx中斷在連續計數模式下怎麼產生中斷的

2024-12-26 05:30:20 字數 2842 閱讀 5480

1樓:網友

首先,如果你只是用連續計數模式,哪麼cctlx(比較捕獲暫存器)根本可以不設定,其次,ccr0的初值沒有設定,中斷只會在定時器溢位時才能發生。

然後,第二個中斷,你是想用ccr1,ccr2吧,,也是因為你沒設定初值,taiv的值只會是10,也就是溢位中斷產生才會進中斷。case中的2,4是計數值到ccr1,2而使中斷標誌置位的。

最後,你每次中斷後,只是把ccr0的值加4,沒有做其它任何事,啥效果都沒有。

ccrx中斷觸發是這樣的:

首先是對它們付初值,在計數達到ccrx中的其中乙個的數字時,產生中斷,。然後根據taiv的值作出你想做的事情。接著繼續主函式,當達到第二個ccrx值時,才產生中斷,重複以上動作。

例如:ccr0=200;ccr1=500;ccr2=2000;

當計數到200時,中斷產生,進入到值為timera0_vector的中斷,執行中斷中的程式。然後繼續主函式,當計數到500時,進入timera1_vector中斷,這時taiv=2,執行case2後的程式。繼續計數到2000時,進入timera1_vector中斷,這時taiv=4,執行case4後的程式。

2樓:九澈勾成和

搜一下:msp430的ccrx中斷在連續計數模式下怎麼產生中斷的。

msp430定時器a工作在連續計數模式時,io口中斷就進不去了,請問高手為什麼啊

3樓:網友

首先,你要在io中斷中手動清除io中斷標誌位,然後再呼叫_eint()函式開啟全域性中斷,另外你要在主程式中加乙個"while(1) ;死迴圈這樣就ok了。

關於msp430定時器a中斷問題

4樓:

對於msp430來說,它的定時器有好幾種中斷源;以g2553為例,它有taccr和定時器溢位兩種型別的中斷。在continuous模式下,taccr0也可以觸發中斷,而且中斷優先順序最高。在進入中斷後,對taccr0加50000.

另外,在一些**中,通過判斷ta0iv的值來判斷是那一種中斷。

msp430 連續計數模式下ccro增加偏移量的問題

5樓:

在連續計數過程中為保證每50000個計數週期一中斷必需這樣設定。如第一次中斷tar計數值在50000,第二次中斷tar計數值在100000(溢位後實際值為100000-65535)。。則第一次ccr0為50000在tar為50000時中斷,第二次在tar增加[(65535-50000)(上一週期tar距溢位剩餘值)+(50000+50000偏移量)(ccr0,這個溢位為100000-65535)]=50000時中斷,依次類推,可保證50000個計數週期一中斷。

不知你能不能看明白,畫個圖就知道了。其實這個改成增計數就容易理解了。

6樓:網友

是暫存器,中斷裡取反了。

msp430微控制器定時器捕獲問題??不能產生捕獲中斷。幫我看看設定有沒問題。?

7樓:揭駿年

應該是捕獲模組0的入口吧,你使用的是ta的捕獲模組1啊,看看晶元手冊吧。

不知道你是什麼型號的,反正我的**是捕獲模組0。

8樓:網友

這個是測頻率的嗎?可不可以發我乙份看看,我這個程式弄不出來。郵箱。

msp430中我需要控制工作在增計數模式下的定時器的關閉與再次開啟,怎麼設定相關暫存器?

9樓:網友

/*初始化定時器a*/

ccr0 = 32767; //設定定時器a的中斷時間為1s

tactl = tassel_1 + mc_1; //計數時鐘aclk, 增計數模式 如果8分頻就+id_3

cctl0 |= ccie;

關閉你就 cctl0 &=~ ccie; 如果還想復位就 ccr0 = 32767; cctl0 &=~ ccie;

開啟你就 cctl0 |= ccie; 開啟時候復位就 ccr0 = 32767; cctl0 |= ccie;

msp430微控制器進入定時中斷,此時ccr0是否已經開始計數了?

10樓:受司大人

2秒週期的定時用的是 b定時器 從**來看 它用的時鐘取的是aclk,而clk是從lfxt1clk取的,所以時鐘是32768hz,而且它已經8分頻了,所以這樣算的話定時器的乙個tick是1/(32768/8)秒,4096個tick就 4096/(32768/8)=1秒啦,所以tbccr0 = 4096*2 - 1; 就是兩秒啦~

11樓:德昂當

是的,ccr0是不停在計數的,不會因為進入中斷而停止。

msp430 的一段程式不太懂

12樓:防彈**

如果你還想增加定時的時間,你只有將定時器的時鐘分頻就ok了!

13樓:啟巖

430 timer三種模式:

增計數模式:定時器計數器從0增加到ccr0後自動變為0(產生中斷),然後又從0增加到ccr0後自動變為0(產生中斷),這樣一直迴圈。

連續計數模式:定時器計數器人0增加到65535後自動變為0(產生中斷),然後又從0增加到65535後自動變為0(產生中斷,這樣一直迴圈。

增減計數模式:定時器計數器從0增加到ccr0,然後又從ccr0減到0(產生中斷),這樣一直迴圈。

上面程式中是增計數模式,第中斷時taccr0為0,然後給他乙個初值50000,相當於每間隔(65535-50000)進一次中斷,時間週期為,定時器時間間隔為15535*大概為14毫秒。

msp430和51微控制器通訊

首先 51是8位微控制器核心 430是16位的,暫存器的地址51為8位,430為16位。51採用複雜指令集,430採用精簡指令集,當然用匯編才會考慮到這個,若用c區別不大。然後51的速度較慢,若是stc89c52的話大都用12mhz晶振,但由於其12個時鐘週期才是一個機器週期,相當於其主頻只有1mh...

不鏽鐵430與430F的區別,430不鏽鐵與430不鏽鋼有什麼區別

430不鏽鐵是具有良好的耐腐蝕效能的通用鋼種,而430f是在430鋼上加上易切削效能的鋼種,如果做鈍化處理,430f比430的難做,因為430f含有易切削的硫元素,活性強,希望能幫到您 430不鏽鐵與430不鏽鋼有什麼區別 430這個牌號,有人叫不鏽鋼,有人叫不鏽鐵,大概是因為他是鐵素體不鏽鋼,可以...

430用英語怎麼寫的,430用英語怎麼寫的啊

four thirty.或者說half past four 或者half tofive都可以。不過貌似美國人都直接說four thirty.兩種寫法 1 half past four 2 four thirty four thirty half past pour half past four 12...