/* MSP430的I/O口的驅動能力*/
每個I/O口最大輸出或者吸收電流為6mA
所有I/O電流總和不超過48mA
// 晶振頻率: 8.000200Mhz
/*MSP430的3V與5V邏輯兼容性問題*/
MSP430單片機的任何一個引腳輸入電壓不能超過VCC+0.3V,不能低于-0.3V,否則將啟動內(nèi)部泄放電路.泄放電路最大只能吸收2mA電流,超過2mA可能會損壞I/O口.
/* 發(fā)光二極管壓降*/
紅色的壓降為2.0--2.2V
×××的壓降為1.8—2.0V
綠色的壓降為3.0—3.2V。
正常發(fā)光時的額定電流均為20mA。
白色發(fā)光二極管的正向電壓降約為3.5V左右,需要正向工作電流≥15mA左右時,才能使其正常發(fā)光。
/* 位操作*/
P2OUT |= BIT0; //P2.0置高
P2OUT &= ~BIT1; //P2.1置低
P2OUT ^= BIT2; //P2.2取反
MSP430可以定義代碼段變量
/*----------------------------------------*/
/* -------------C430變量類型--------------*/
變量類型 字節(jié)數(shù)
char 1
unsigned char 1
int 2
unsigned int 2
long 4
unsigned long 4
long long 8
unsigned long long 8
float 4
double 4或者8 General Option 選型設置浮點指針長度
/*IO口*/
PxIES IO口中斷觸發(fā)掩選擇 0=上升沿 1=下降沿
PxSEL IO口第二功能選擇
PxOUT 復位初始值保持不變
退出中斷時必須清除I/O口中斷標志 PxIFG=0;
如果I/O口PxDIR設置為輸入,那么I/O口的電平為低電平(0V)
/*系統(tǒng)時鐘輸出引腳*/
P5.4/MCLK //主系統(tǒng)時鐘輸出
P5.5/SMCLK //子系統(tǒng)時鐘輸出
P5.6/ACLK //輔助時鐘輸出
/*開總中斷函數(shù), 關總中斷函數(shù), 空操作函數(shù)*/
_EINT();
_DINT();
_NOP();
/* MSP-PRGS430燒錄時"熔絲已燒斷"的解決步驟*/
1.拔下430片子(或430片子所在的硬件電路板),重新上電,再燒,可能就好了.
2.提高MSP-PRGS430燒錄時的電壓再燒錄,一次提高0.1伏,直到不能提高為止(F1121可提高到3.6伏)
3.用手緊緊按在430電源所在管腳附近,再燒錄.(此法純粹屬于經(jīng)驗,無理論依據(jù),但在我的電路中用于解決燒錄問題相當靈驗)
/*定時器*/
看門狗定時器: 看門狗模式 間隔定時器模式
例:設置看門狗工作在定時器模式,16ms中斷一次
WDTCTL = WDT_ADLY_16; //設置內(nèi)部看門狗工作在定時器模式,16ms中斷一次
IE1 |= WDTIE; //使能看門狗中斷
_EINT(); //打開全局中斷
#pragma vector = WDT_VECTOR //看門狗中斷服務程序
__interrupt void watchdog_timer(void)
{
}
/* --------------Timer_A------------ */
應用: 產(chǎn)生高分辨率且精確的周期性時基 精確定時 精確計時計數(shù) 產(chǎn)生PWM波形 產(chǎn)生脈沖 產(chǎn)生可變頻率方波 測量脈寬 測量周期與頻率
功能特點:
四種操作模式的16位計時/計數(shù)器
可選擇和可配置的時鐘源
計數(shù)模塊:
TAR -- 計數(shù)數(shù)值模塊
TASSELx -- 選擇時鐘源, IDx: 時鐘源分頻
MCx -- 計數(shù)模式選擇
00=停止計時
01=增計數(shù)(從0計數(shù)到TACCR0, 共計數(shù)TACCR0+1次)
10=連續(xù)計數(shù)(從0計數(shù)到0FFFFh) 可以用來產(chǎn)生定時時間間隔,輸出頻率
11=增減計數(shù)(0->TACCRO->0)
TACTL |= TASSEL_x + MC_x + ID_x; //時鐘源選擇, 計數(shù)模式選擇, 時鐘源分頻
捕獲/比較模塊:
CAP=1時,選擇捕獲模塊. 捕獲輸入CCIxA CCIxB
CMx位,捕獲邊沿選擇, 上升沿, 下降沿, 上升下降沿
捕獲出現(xiàn)后: 當前復制TAR -->TACCRx, 置位CCIFG中斷標志位
捕獲模式輸入引腳: CCI0A -- P1.1 CCI1A -- P1.2 CCI2A -- P1.3 CCI0B -- P2.2
CAP=0時,選擇比較模式,用于產(chǎn)生PWM波, 產(chǎn)生間隔定時
當TAR == TACCRx時: CCIFG置位, EQUx=1, 產(chǎn)生輸出波形,
比較模式輸出引腳: P1.1/TA0 -- OUT0 P1.5/TA0 -- OUT0 P2.7/TA0 -- OUT0
P1.2/TA1 -- OUT1 P1.6/TA1 -- OUT1 P2.4/CA0/TA1 -- OUT1
P1.3/TA2 -- OUT2 P1.7/TA2 -- OUT2 P2.4/CA1/TA2 -- OUT2
輸出單元:
中斷:
TIMERA0_VECTOR: TACCR0中斷向量 -- TACCR0.CCIFG
: TAIV中斷向量 -- TACCR1.CCIFG TACCR2.CCIFG TAIFG(主計數(shù)器滿)
/* TA3IV Definitions */
#define TAIV_TACCR1 (0x0002) /* TACCR1_CCIFG */
#define TAIV_TACCR2 (0x0004) /* TACCR2_CCIFG */
#define TAIV_TAIFG (0x000A) /* TAIFG */
產(chǎn)生中斷: 對應CCIE置位, GIE被置位
TACCTLx |= CCIE; //允許捕獲/比較模塊x的中斷
CCRx 計數(shù)器x的計數(shù)值
/*串口*/
串口通信引腳
P3.4/UTXD0
P3.5/URXD0
P3.6/UTXD1
P3.7/URXD1
/*-----------比較器A---------------*/
兩個模擬量輸入端CA0 CA1, 模擬比較器, 參考電壓發(fā)生器, 輸出濾波器
比較兩個輸入電壓CA0和CA1的大小關系,然后設置輸出信號CAOUT的值.如果CA0>CA1,則CAOUT=1;否則CAOUT=0.
四種參考電壓: 0.5Vcc 0.25Vcc 三極管閾值電壓 外部參考源
配置例程:
CACTL1 = CARSEL + CAREF0 +CAON; // 0.25Vcc連接到比較器的負端
CACTL2 = P2CA0; // 外部引腳信號連接到比較器的正端
比較器輸入輸出端口:
P2.2/CAOUT/TA0 通用數(shù)字I/O引腳;定時器A捕獲CCIOB輸入;比較器輸出
P2.3/CA0/TA1 通用數(shù)字I/O引腳;定時器A比較OUT1輸出; 比較器A輸入
P2.4/CA1/TA2 通用數(shù)字I/O引腳;定時器A比較OUT2輸出; 比較器A輸入
/*--------------------------------------*/
/*--------------片內(nèi)ADC12---------------*/
注意: 內(nèi)部參考源可能不準確, 得測量. 用電源電壓作為基準,我的板子電壓電壓3.3134sV,分辨率0.8mv
基準電壓設置應該在ADC12CTL0 |= ENC之前.
功能模塊:
帶采樣/保存功能的ADC內(nèi)核
可控制的轉換存儲
可控制的參考電平發(fā)生器
可控制和選擇的時鐘源
可控制的采樣及轉換時序電路
特點: 200ksps轉換速率,
12位0000h -- 0FFFh
Nadc = 4095 * (Vin - Vr-)/(Vr+ - Vr-);
2.5V基準電壓, 分辨率為0.6mV
參考電壓發(fā)生器:
REFON: REFON=1 開啟參考電壓發(fā)生器
REF2_5V: REF2_5V=1, 參考電壓2.5V; REF2_5V=0, 參考電壓1.5V
轉換與存儲:
16組-- ADC12MEMx ADC12MCTLx
SREFx 定義參考電壓
INCHx 選擇輸入通道
EOS 定義序列采樣的結束(使用序列模式)
CSTARTADDx 定義起始ADC12MCTLx(單通道和序列通道都使用)
轉換模式:
CONSEQx 00=單通道單次轉換 01=序列通道單次轉換
10=單通道多次轉換 11=序列通道多次轉換
MSC 多重快速轉換
中斷:
ADC12IE 中斷允許寄存器
ADC12IFG 中斷標志寄存器
ADC12V 中斷向量寄存器
ADC12IFGx 當轉換結果被寫入ADC12MEMx后,該位被置位
(ADC12IEx 和 GIE被置位, 才產(chǎn)生中斷)
寄存器:
ACD12CTL0:
SHT1x SHT0x -- 采樣保持需要的ADC12CLK的周期數(shù)
MSC -- 多重快速轉換
ENC -- 允許轉換
ADC12SC -- 軟件開啟轉換, 觸發(fā)源模式00
ADC12CTL1:
CSTARTADDx -- 定義起始ADC12MCTLx(單通道和序列通道都使用)
SHSx -- 觸發(fā)源選擇
SHP -- 采樣保持模式選擇
SHP=1,觸發(fā)采樣模式
ADC12SSELx -- 時鐘源選擇
CONSEQx -- 轉換模式選擇
00=單通道單次轉換 01=序列通道單次轉換
10=單通道多次轉換 11=序列通道多次轉換
ADC12MCTLx:
EOS -- 定義序列采樣的結束(使用序列模式)
SREFx -- 參考電壓選擇
000 VR+ = AVCC and VR- = AVSS
001 VR+ = VREF+ and VR- = AVSS
010 VR+ = VeREF+ and VR- = AVSS
011 VR+ = VeREF+ and VR- = AVSS
100 VR+ = AVCC and VR- = VREF-/ VeREF-
101 VR+ = VREF+ and VR- = VREF-/ VeREF-
110 VR+ = VeREF+ and VR- = VREF-/ VeREF-
111 VR+ = VeREF+ and VR- = VREF-/ VeREF-
INCHx -- 采樣通道選擇
上一篇:MSP430與ATK-NEO-6M GPS模塊
下一篇:初學MSP-EXP430G2-LaunchPad(六)
推薦閱讀
史海拾趣
設計資源 培訓 開發(fā)板 精華推薦
- EEworld獨家原創(chuàng)視頻:大話TI CC2650,邀你來看!
- 觀看TI IOT解決方案研討會 答題即可贏取更多精美好禮!
- 【EEWORLD第三十九屆】2012年06月社區(qū)明星人物揭曉!
- 永不過時的物聯(lián)網(wǎng)解決方案 Intel帶你6的飛起來!
- ADI有獎下載活動之25:ADI汽車傳感器和傳感器接口解決方案
- Vicor 更好的供電方式提升無人機飛行時間飛行半徑及有效載荷
- 考眼力:高速數(shù)字設計的秘籍 藏在哪里? 走近Keysight PATHWAVE,提升工作效率
- TI 最新電容式觸控套件,免費嘗鮮中
- TI有獎直播|借助Sitara™ AM263x MCU 創(chuàng)造電氣化的未來