MSP430F5438學(xué)習筆記1-定時(shí)器
例子:比較模式就像51單片機一樣,要能夠軟件設置定時(shí)間隔來(lái)產(chǎn)生中斷處理一些事情,如鍵盤(pán)掃描,也可以結合信號輸出產(chǎn)生時(shí)序脈沖發(fā)生器,PWM信號發(fā)生器。如:不斷裝載TACCRx,啟動(dòng)定時(shí)器,TAR和TACCRx比較產(chǎn)生中斷處理。
捕獲模式:
捕獲模式的應用:
例子:利用兩次捕獲的值來(lái)測量脈沖的寬度?;虿东@選擇任意沿,CCISx=”11“(輸入選擇VCC),這樣即當VCC與GND發(fā)生切換時(shí)產(chǎn)生捕獲條件
結合利用:異步通訊
同時(shí)應用比較模式和捕獲模式來(lái)實(shí)現UART異步通信。即利用定時(shí)器的比較模式來(lái)模擬通訊時(shí)序的波特率來(lái)發(fā)送數據,同時(shí)采用捕獲模式來(lái)接收數據,并及時(shí)轉換比較模式來(lái)選定調整通信的接受波特率,達到幾首一個(gè)字節的目的
-------------------------------------------------------------------------------------------------
利用MSP430單片機定時(shí)器A和捕獲/比較功能模塊結合使用,實(shí)現脈沖寬度的測量。
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;
}
}
//例程結束
評論