MSP430F5438學(xué)習(xí)筆記1-定時(shí)器
例子:比較模式就像51單片機(jī)一樣,要能夠軟件設(shè)置定時(shí)間隔來(lái)產(chǎn)生中斷處理一些事情,如鍵盤掃描,也可以結(jié)合信號(hào)輸出產(chǎn)生時(shí)序脈沖發(fā)生器,PWM信號(hào)發(fā)生器。如:不斷裝載TACCRx,啟動(dòng)定時(shí)器,TAR和TACCRx比較產(chǎn)生中斷處理。
捕獲模式:
捕獲模式的應(yīng)用:
例子:利用兩次捕獲的值來(lái)測(cè)量脈沖的寬度?;虿东@選擇任意沿,CCISx=”11“(輸入選擇VCC),這樣即當(dāng)VCC與GND發(fā)生切換時(shí)產(chǎn)生捕獲條件
結(jié)合利用:異步通訊
同時(shí)應(yīng)用比較模式和捕獲模式來(lái)實(shí)現(xiàn)UART異步通信。即利用定時(shí)器的比較模式來(lái)模擬通訊時(shí)序的波特率來(lái)發(fā)送數(shù)據(jù),同時(shí)采用捕獲模式來(lái)接收數(shù)據(jù),并及時(shí)轉(zhuǎn)換比較模式來(lái)選定調(diào)整通信的接受波特率,達(dá)到幾首一個(gè)字節(jié)的目的
-------------------------------------------------------------------------------------------------
利用MSP430單片機(jī)定時(shí)器A和捕獲/比較功能模塊結(jié)合使用,實(shí)現(xiàn)脈沖寬度的測(cè)量。
2-例程
#include <msp430x14x.h>
unsigned int start,end;
unsigned char overflow;
void main (void)
{
WDTCTL
P1DIR = BIT0+BIT4;
P1SEL = BIT2;
TACTL = TASSEL0+TACLR+TAIE+MC1;
CCTL1 = MC0+SCS+CAP+CCIE;
_EINT();
while(1);
}
#pragma vector=TIMERA1_VECTOR
__interrupt void timer_a(void)
{
switch(TAIV)
{
if(CCTL1&CM0)
{
CCTL1=(CCTL1&(~CM0))|CM1;
start=TAR;
overflow=0;
}
else if (CCTL1&CM1)
{
CCTL1=(CCTL1&(~CM1))|CM0;
end=TAR;
}
break;
case 10:
overflow++;
break;
default:break;
}
}
//例程結(jié)束
評(píng)論