資源簡介
msp430g2553單片機定時器中斷例程

代碼片段和文件信息
/**************************WENHUA?COLLEDGE?ZERO?GROUP***************************
學習目標:定時器A中斷間隔設定
作者:????鐘皇平
時間:????2014.12.18
*******************************************************************************/
#include??“msp430g2553.h“
unsigned?int?count=0;
//一般情況下我們使用Timer?A0?0定時器或Timer?A1?0定時器就可以了,因為我們可以方便的設定進入中斷函數的間隔,
//而Timer?A0?1?Timer?A1?1定時器因為定時器進入中斷函數的時間間隔目前我發現是無法改變的,進入頻率極高(實驗測得間隔時間為大概20us),
//太過頻繁的進入中斷函數會影響其他函數的運行,所以我們一般不用,這里寫出只是為了方便大家學習
void?InitClock()??????????????????????????????????????????????//初始化時鐘??Set?DCO
{?????????????????????????????????????????????????????????????//從flash的information區把校正好的參數讀進來
??BCSCTL1?=?CALBC1_16MHZ;?????????????????????????????????????//CALDCO_16MHZ?所代表的值已經被廠家存儲在單片機
??DCOCTL?=?CALDCO_16MHZ;??????????????????????????????????????//的FLASH信息存儲器Segment段0x10F8~0x10FF地址中
??BCSCTL2|=DIVS_3;????????????????????????????????????????????//選擇SMCLK時鐘為DCO?8分頻即2Mhz
}
void?TimerA00IntInit()????????????????????????????????????????//Timer?A0?0定時器初始化函數
{
??TACTL?=?TASSEL_2?+?MC_1+ID_1+TACLR;?????????????????????????//?SMCLK?2分頻?upmode
??CCTL0?=?CCIE;???????????????????????????????????????????????//?CCR0?interrupt?enabled
??CCR0?=?50000;???????????????????????????????????????????????//進入中斷函數的間隔?單位:us
}
void?TimerA01IntInit()????????????????????????????????????????//Timer?A0?1定時器初始化函數
{
??TA0CTL?=?TASSEL_2?+?MC_1+ID_1+TACLR+TAIE;???????????????????//?SMCLK?2分頻?upmode
??TA0CCR0?=?50000;????????????????????????????????????????????//進入中斷函數中case?10分支的間隔(實驗測得進入中斷函數的間隔大概是20us)?單位:us
}
void?TimerA10IntInit()????????????????????????????????????????//Timer?A1?0定時器初始化函數
{
??TA1CTL?=?TASSEL_2?+?MC_1+ID_1+TACLR;????????????????????????//?SMCLK?2分頻?upmode
??TA1CCTL0?=?CCIE;????????????????????????????????????????????//?CCR0?interrupt?enabled
??TA1CCR0?=?50000;????????????????????????????????????????????//進入中斷函數的間隔?單位:us
}
void?TimerA11IntInit()????????????????????????????????????????//Timer?A1?1定時器初始化函數
{
??TA1CTL?=?TASSEL_2?+?MC_1+ID_1+TACLR+TAIE;???????????????????//?SMCLK?2分頻?upmode
??TA1CCR0?=?50000;????????????????????????????????????????????//進入中斷函數中case?10分支的間隔(實驗測得進入中斷函數的間隔大概是20us)?單位:us
}
void?main()
{
??WDTCTL?=?WDTPW?+?WDTHOLD;???????????????????????????????????//?關閉看門狗
??InitClock();????????????????????????????????????????????????//時鐘初始化
??TimerA01IntInit();??????????????????????????????????????????//Timer?A0?1通道初始化函數
??P1DIR?|=?0x01;??????????????????????????????????????????????//?P1.0?output
??_EINT();????????????????????????????????????????????????????//使能全局中斷
???
??while(1)
??{
??}
}
#pragma?vector=TIMER0_A0_VECTOR
__interrupt?void?TimerA00Int()
{
??count++;
??if(count==20)
??{
????count=0;
????P1OUT?^=?0x01;???????????????????????????????????????????//?Toggle?P1.0
??}
}
#pragma?vector=TIMER0_A1_VECTOR
__interrupt?void?TimerA01Int()
{
??switch(?TA0IV?)????????????????????????????????????????????//判斷中斷標志
??{
????case??2:?break;????????????????????????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-12-20?22:32??Timer?A?定時中斷\
?????目錄???????????0??2014-12-17?14:49??Timer?A?定時中斷\Debug\
?????目錄???????????0??2014-12-17?16:08??Timer?A?定時中斷\Debug\Exe\
?????文件???????17318??2014-12-20?22:32??Timer?A?定時中斷\Debug\Exe\設置時鐘.d43
?????目錄???????????0??2014-12-20?22:33??Timer?A?定時中斷\Debug\List\
?????目錄???????????0??2014-12-20?22:32??Timer?A?定時中斷\Debug\Obj\
?????文件???????????0??2014-12-20?22:32??Timer?A?定時中斷\Debug\Obj\main.pbi
?????文件????????9927??2014-12-20?22:32??Timer?A?定時中斷\Debug\Obj\main.pbi.cout
?????文件???????12109??2014-12-20?22:32??Timer?A?定時中斷\Debug\Obj\main.r43
?????文件???????????0??2014-12-20?22:32??Timer?A?定時中斷\Debug\Obj\設置時鐘.pbd
?????文件???????????0??2014-12-20?22:32??Timer?A?定時中斷\Debug\Obj\設置時鐘.pbd.browse
?????文件????????4864??2014-12-20?22:32??Timer?A?定時中斷\main.c
?????文件???????????0??2014-12-17?16:57??Timer?A?定時中斷\path.txt
?????文件?????????186??2013-08-23?18:40??Timer?A?定時中斷\settime.eww
?????目錄???????????0??2014-12-17?14:49??Timer?A?定時中斷\settings\
?????文件????????3963??2014-12-20?22:33??Timer?A?定時中斷\settings\settime.wsdt
?????文件????????1676??2014-12-20?22:25??Timer?A?定時中斷\settings\設置時鐘.cspy.bat
?????文件???????12695??2014-12-20?22:33??Timer?A?定時中斷\settings\設置時鐘.dbgdt
?????文件????????1494??2014-12-20?22:33??Timer?A?定時中斷\settings\設置時鐘.dni
?????文件????????1970??2014-12-20?22:33??Timer?A?定時中斷\設置時鐘.dep
?????文件???????20422??2013-08-23?18:40??Timer?A?定時中斷\設置時鐘.ewd
?????文件???????52297??2013-08-23?18:40??Timer?A?定時中斷\設置時鐘.ewp
?????文件??????????25??2014-12-20?22:33??Timer?A?定時中斷\設置時鐘CustomSfr.sfr
- 上一篇:電感式微位移傳感器
- 下一篇:類Foxmail實現代碼
評論
共有 條評論