電設(shè)工作小結(jié)之——MSP430G2553學(xué)習(xí)筆記—2.doc_第1頁
電設(shè)工作小結(jié)之——MSP430G2553學(xué)習(xí)筆記—2.doc_第2頁
電設(shè)工作小結(jié)之——MSP430G2553學(xué)習(xí)筆記—2.doc_第3頁
電設(shè)工作小結(jié)之——MSP430G2553學(xué)習(xí)筆記—2.doc_第4頁
電設(shè)工作小結(jié)之——MSP430G2553學(xué)習(xí)筆記—2.doc_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

電設(shè)工作小結(jié)之MSP430G2553學(xué)習(xí)筆記2接上一篇:(四),ADC101,ADC10是十位的AD,在g2553上有A0A7八個(gè)可以外接的AD通道,A10接到片上的溫度傳感器上,其他的通道都接在內(nèi)部的V或GND上。因?yàn)槭菫榈乃杂?jì)算公式如下:2 ,ADC參考電壓的選擇:ADC的參考電壓可以為:由ADC控制寄存器0 ADC10CTL0控制。但是要提高ADC的精度的話,盡量不要用內(nèi)部的參考電壓,最好外接一個(gè)比較穩(wěn)定的電壓作為參考電壓,因?yàn)閮?nèi)部的產(chǎn)生的參考電壓不是特別穩(wěn)定或精度不是特別的高。例如我在使用時(shí)遇到的情況如下:Vref設(shè)為2.5V但實(shí)際的值大概為2.475V, 選擇VCCVSS作為參考,用電壓表測(cè)得大概為3.58V還是不小的偏差的。另外,在有可能的情況下,盡量采用較大的VR+和VR-,以減小紋波對(duì)采樣結(jié)果的影響。3,ADC10的采樣方式有:?jiǎn)瓮ǖ绬未尾蓸?,單通道多次采樣,多通道單次采樣,多通道多次采樣?,DTC:因?yàn)锳DC10只有一個(gè)采樣結(jié)果存儲(chǔ)寄存器ADC10MEM,所以除了在單通道單次采樣的模式下,其他的三個(gè)模式都必須使用DCT,否則轉(zhuǎn)換結(jié)果會(huì)不停地被新的結(jié)果給覆蓋。DTC是轉(zhuǎn)換結(jié)果傳送控制,也就是轉(zhuǎn)換結(jié)果可以不用CPU的干預(yù),就可以自動(dòng)地存儲(chǔ)在指定的存儲(chǔ)空間內(nèi)。使用這種方式轉(zhuǎn)換速度快,訪問方便,適用于高速采樣模式中。DTC的使用可以從下面的例子中很容易看明白:#include #include ser_12864.huchar s1=DTC:;uchar s2=2_cha_2_time_DTC;void ADC_init()ADC10CTL1 = CONSEQ_3 + INCH_1;/ 2通道多次轉(zhuǎn)換, 最大轉(zhuǎn)換通道為A1ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE; / ADC10ON, interrupt enabl參考電壓選默認(rèn)值VCC和VSS/采樣保持時(shí)間為16 x ADC10CLKs,ADC內(nèi)核開,中斷使能MSC多次轉(zhuǎn)換選擇開/如果MSC置位,則第一次開始轉(zhuǎn)換時(shí)需要觸發(fā)源觸發(fā)一次,以后的轉(zhuǎn)換會(huì)自動(dòng)進(jìn)行中斷使能/使用DTC時(shí),當(dāng)一個(gè)塊傳送結(jié)束,產(chǎn)生中斷/數(shù)據(jù)傳送控制寄存器0 ADC10DTC0設(shè)置為默認(rèn)模式:?jiǎn)蝹魉蛪K模式,單塊傳送完停止ADC10DTC1 = 0x04; /數(shù)據(jù)傳送控制寄存器1 4 conversions定義在每塊的傳送數(shù)目一共采樣4次 所以單塊傳送4次/以后就停止了傳送 因?yàn)槭莾赏ǖ赖模允敲總€(gè)通道采樣數(shù)據(jù)傳送2次ADC10AE0 |= BIT0+BIT1;/ P1.0 P1.1 ADC option select 使能模擬輸入腳A0 A1/不知道為什么,當(dāng)P10 P11都懸空時(shí),采樣值不同,用電壓表測(cè)得懸空電壓不同,但是當(dāng)都接上采樣源的時(shí)候,/采樣是相同的void main(void)uint adc_sample8=0;/存儲(chǔ)ADC序列采樣結(jié)果WDTCTL = WDTPW+WDTHOLD;BCSCTL1 = CALBC1_12MHZ;/設(shè)定cpu時(shí)鐘DCO頻率為12MHzDCOCTL = CALDCO_12MHZ;P2DIR |=BIT3+BIT4;/液晶的兩條線init_lcd();ADC_init();wr_string(0,0,s1);wr_string(0,3,s2);for (;)ADC10CTL0 &= ENC;/ADC不使能其實(shí)這句話可以放在緊接著CPU喚醒之后的,因?yàn)镃PU喚醒了,說明我們想要的/轉(zhuǎn)換數(shù)據(jù)傳送完成了,如果ADC繼續(xù)轉(zhuǎn)換,那么轉(zhuǎn)換結(jié)果也不再傳輸,是無用的。所以緊接著放在CPU喚醒之后/計(jì)時(shí)關(guān)閉ADC,有利于降低功耗while (ADC10CTL1 & BUSY);/ Wait if ADC10 core is active等待忙ADC10SA = (unsigned int)adc_sample;/數(shù)據(jù)傳送開始地址寄存器設(shè)置DTC的開始地址Data buffer start/設(shè)置數(shù)據(jù)開始傳送的地址為數(shù)組adc_sample的首地址,因?yàn)榧拇嫫鰽DC10SA和轉(zhuǎn)換結(jié)果都是16位的,所以要把/地址強(qiáng)制轉(zhuǎn)換為16位的int或unsigned int/應(yīng)該也可以用指針直接訪問DTC的存儲(chǔ)區(qū),還沒試過/例如:前面定義了單塊傳送4次數(shù)據(jù),所以每次傳送完成了一個(gè)塊,也就是4次,就會(huì)把中斷標(biāo)志位置位,產(chǎn)生中斷/因?yàn)樯厦嬖O(shè)置的地址為數(shù)組adc_sample的首地址,所以每次轉(zhuǎn)換的結(jié)果就會(huì)傳送到該數(shù)組的前4位上,所以如果/一切正常的話,數(shù)組里應(yīng)該是前4位為轉(zhuǎn)換的結(jié)果,后4位為初始值0通過下面的顯示,驗(yàn)證轉(zhuǎn)換是正確的/一次觸發(fā)首先對(duì)A1、A0采樣,放入a0和a1中,再對(duì)A1、A0采樣,放入a2和a3中。如此循環(huán)下去。/驗(yàn)證得知,當(dāng)多通道采樣時(shí),先采高的通道,再采低的通道。如上面每次采樣時(shí),先采A1 再A0/因?yàn)橐还膊蓸觽魉?次,所以數(shù)組的后4位為初始值0ADC10CTL0 |= ENC + ADC10SC; / Sampling and conversion startADC使能,開始轉(zhuǎn)換 ADC10SC為采樣觸發(fā)源/不需要cpu的干預(yù),DTC就可以把采樣結(jié)果存儲(chǔ)到指定的存儲(chǔ)區(qū)中_bis_SR_register(CPUOFF + GIE);/ LPM0, ADC10_ISR will force exit如果轉(zhuǎn)換結(jié)果傳送完成,/就會(huì)進(jìn)入中斷,CPU喚醒 繼續(xù)往下運(yùn)行wr_int(2,0,adc_sample0);/顯示轉(zhuǎn)換結(jié)果A1wr_int(6,0,adc_sample1);/A0wr_int(0,1,adc_sample2);/A1wr_int(3,1,adc_sample3);/A0wr_int(6,1,adc_sample4);wr_int(0,2,adc_sample5);wr_int(3,2,adc_sample6);wr_int(6,2,adc_sample7);/ ADC10 interrupt service routine#pragma vector=ADC10_VECTOR_interrupt void ADC10_ISR(void)/中斷響應(yīng)以后,中斷標(biāo)志位自動(dòng)清零_bic_SR_register_on_exit(CPUOFF);/ Clear CPUOFF bit from 0(SR)上面的例子是把存儲(chǔ)結(jié)果存儲(chǔ)在了uint型的數(shù)組中。也可以用指針直接指定要存放的地址,然后再用指針進(jìn)行訪問(理論上可以,但還沒有試過)。也可以把存儲(chǔ)結(jié)果直接存放在一個(gè)16位的寄存器中,如:ADC10SA = (unsigned int)&TACCR1;/ Data transfer location把轉(zhuǎn)換結(jié)果存儲(chǔ)在TACCR1所在的/位置處,就相當(dāng)于存儲(chǔ)在TACCR1中 因?yàn)锳DC轉(zhuǎn)換結(jié)果和寄存器TACCR1都是16位的,所以要把地址強(qiáng)制轉(zhuǎn)換為16位的/int 或 unsigned int型5,ADC采樣注意事項(xiàng):用片上的ADC10進(jìn)行采樣,如果外部分壓電路的電阻過大(比如幾K以上),AD引腳會(huì)把電壓拉高,使采樣結(jié)果發(fā)生很大的偏差。應(yīng)換成小電阻(幾十幾百歐),如果要求更精確的話,要加運(yùn)放進(jìn)行電壓跟隨。6,AD采樣交流信號(hào):一般是50Hz,100Hz,1000Hz。方法是在交流信號(hào)的一個(gè)周期內(nèi)采樣多次(如40次,30次等),然后利用公式可以求出交流信號(hào)的有效值,平均值等。7,片上溫度傳感器ADC的A10通道接片上的溫度傳感器,MSP430內(nèi)嵌的溫度傳感器實(shí)際上就是一個(gè)輸出電壓隨環(huán)境溫度而變化的溫度二極管。當(dāng)使用片上溫度傳感器時(shí),采樣周期必須大于30us片上溫度傳感器的偏移很大,所以精確測(cè)量需要進(jìn)行校準(zhǔn)。選擇片上溫度傳感器INCH_10,ADC其他的設(shè)置都和外部通道的設(shè)置相同,包括參考電壓源的選擇和轉(zhuǎn)換存儲(chǔ)的選擇選擇了片上溫度傳感器,會(huì)自動(dòng)地打開片上參考電壓源發(fā)生器作為溫度傳感器的電壓源,但是這并不會(huì)時(shí)能VREF+輸出,也不會(huì)影響AD轉(zhuǎn)換參考源的選擇,轉(zhuǎn)換參考源的選擇和其他通道的選擇相同公式為:VTEMP=0.00355(TEMPC)+0.986片上溫度傳感器的校準(zhǔn),可以參見我的溫度傳感器校準(zhǔn)程序,也可以參考其他的論文。下面只給出程序的一部分:void ADC_init()ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; / ADC10ON, interrupt enabled 參考電壓選默認(rèn)值VCC和VSS/采樣保持時(shí)間為16 x ADC10CLKs,ADC開,中斷使能ADC10CTL1 = INCH_10;/ ADC輸入通道選擇A10,為內(nèi)部的溫度傳感器/其他是默認(rèn),采樣觸發(fā)輸入源選擇為ADC10SC,采樣輸入信號(hào)不翻轉(zhuǎn),轉(zhuǎn)換時(shí)鐘選擇內(nèi)部時(shí)鐘源:ADC10OSC,3.76.3MHz/不分頻,單通道單次轉(zhuǎn)換/ADC10AE0 |= 0x02;/ PA.1 ADC option select 使能模擬輸入腳A1/P1DIR |= 0x01;/ Set P1.0 to output direction/所以是P11為ADC輸入腳,P10控制led(五),通用串行通信接口(USCI)1,USCI_A:支持UART,IrDA,SPIUSCI_B:支持I2C, SPI2,UART這個(gè)模塊沒什么好說的,和其他的一寫處理器如S12,ARM等差不多。只要設(shè)置好幾個(gè)控制寄存器,波特率,寫幾個(gè)收發(fā)函數(shù)就可以了。下面就給出msp430g2553于PC用UART通信的基本程序:#includemsp430g2553.hunsigned char rev;char *string1=Helloworld!;char string2=Get it!n;/n是換行符void putchar(unsigned char c)/發(fā)送字符函數(shù)while (!(IFG2&UCA0TXIFG);/ USCI_A0 TX buffer ready? 等待TX buffer為空UCA0TXBUF = c;/ TX - RXed character發(fā)送字符cvoid putstr(char *s)/發(fā)送字符串函數(shù)IE2 &= UCA0RXIE;/發(fā)送時(shí)先關(guān)閉接收中斷,不接收while(*s)!=0)/如果沒有發(fā)完,就繼續(xù)循環(huán)發(fā)送putchar(*s);/ putchar(n);/發(fā)送換行符s+;IE2 |= UCA0RXIE;/發(fā)送完了打開接收中斷void main(void)WDTCTL = WDTPW + WDTHOLD;/ Stop WDTP1DIR=BIT0;BCSCTL1 = CALBC1_1MHZ;/ Set DCO 為1MHzDCOCTL = CALDCO_1MHZ;P1SEL = BIT1 + BIT2 ;/ P1.1 = RXD, P1.2=TXDP1SEL2 = BIT1 + BIT2;/第二外圍模式選擇/UCA0CTL1 |= UCSSEL_2;/ SMCLK 其他默認(rèn):軟件復(fù)位使能 USCI邏輯保持在復(fù)位狀態(tài),用于設(shè)置串口/UCA0CTL0全部為默認(rèn)狀態(tài):無奇偶校驗(yàn),LSB first,8bit_data,一位停止位,UART模式,異步模式/UCA0BR0 = 8;/ SMCLK 1MHz 1152008/UCA0BR1 = 0;/ 1MHz 115200/UCA0MCTL = UCBRS2 + UCBRS0;/ Modulation UCBRSx = 5/下面是選擇ACLK,波特率設(shè)置為固定的UCA0CTL1 |= UCSSEL_1;/ACLKUCA0BR0 = 3;/ ACLK 32768Hz 960032768Hz/9600 = 3.41UCA0BR1 = 0;/ 32768Hz 9600UCA0MCTL = UCBRS1 + UCBRS0;/ Modulation UCBRSx = 3UCA0CTL1 &= UCSWRST;/ *Initialize USCI state machine*初始化釋放,可以操作IE2 |= UCA0RXIE;/ Enable USCI_A0 RX interrupt接收中斷使能_bis_SR_register(LPM0_bits + GIE);/ Enter LPM0, interrupts enabled/ Echo back RXed character, confirm TX buffer is ready first#pragma vector=USCIAB0RX_VECTOR_interrupt void USCI0RX_ISR(void)while (!(IFG2&UCA0TXIFG);/ USCI_A0 TX buffer ready? 等待TX buffer為空UCA0TXBUF = UCA0RXBUF;/ TX - RXed character發(fā)送接收到是數(shù)據(jù)rev=UCA0RXBUF;if(rev&0x01)P1OUT |= BIT0;putstr(string1);putstr(string2);elseP1OUT &= BIT0;注意:關(guān)于波特率的設(shè)置這一塊還沒有看懂,但上面的例子總的設(shè)置是對(duì)的值得說明的是:可以用定時(shí)器來實(shí)現(xiàn)串口通信功能,例子還沒有看。3,對(duì)于SPI和I2C,有時(shí)有可能會(huì)用于g2553和其他的一些芯片、設(shè)備的通信用,還沒沒仔細(xì)看。(六),比較器AComparator_A+1,是一個(gè)模擬電壓比較器,主要功能是指出兩個(gè)輸入電壓CA0和CA1的大小關(guān)系,然后由輸出信號(hào)CAOUT輸出。2,輸出:如果正端輸入電壓大于負(fù)端輸入電壓,輸入為1。如果負(fù)端輸入電壓大于正端輸入電壓,輸出為0;3,最終輸出信號(hào)的上升沿或下降沿可以設(shè)置為具有中斷能力,中斷響應(yīng)后,硬件會(huì)自動(dòng)清除中斷標(biāo)志位CAIFG,也可以被軟件清除。4,Comparator_A+支持精密的斜坡AD轉(zhuǎn)換,供電電壓檢測(cè)和監(jiān)視外部模擬信號(hào)。5,比較器的其中一路可以接參考電壓,有0.25VCC, 0.5VCC, 三極管的閥值電壓0.55V也可以兩路信號(hào)都接外部的模擬信號(hào)。6,更詳細(xì)的內(nèi)容,參見用戶只能,下面的例子是簡(jiǎn)單的用比較器A比較兩個(gè)輸入模擬電壓的高低,有CAOUT輸出:/主要功能是比較兩個(gè)輸入信號(hào)的大小關(guān)系#includevoid delay(void);/ Software delayvoid main (void)WDTCTL = WDTPW + WDTHOLD;/ Stop WDTCACTL2 = P2CA4;/ CA1/P1.1 = +comp 正輸入端信號(hào)選擇CA1,負(fù)輸入端信號(hào)不連接外部輸入信號(hào)/其他位的設(shè)置為默認(rèn):比較器輸出不濾波 , CAOUT為比較器的輸出結(jié)果CCTL0 = CCIE;/ CCR0 interrupt enabledTACTL = TASSEL_2 + ID_3 + MC_2;/ SMCLK/8, cont-mode_EINT();/ enable interruptswhile (1)/ Loop/比較器A控制寄存器1 CACTL1采用的是默認(rèn)設(shè)置:參考電壓源VCAREF加到比較器的正輸入端,內(nèi)部參考源關(guān),比較器關(guān),/中斷不使能CACTL1 = 0x00;/ No reference voltage_BIS_SR(LPM0_bits);/ Enter LPM0CACTL1 = CAREF0 + CAON;/ 參考源為0.25*Vcc, Comp. on_BIS_SR(LPM0_bits);/ Enter LPM0CACTL1 = CAREF1 + CAON;/ 參考源為0.5*Vcc, Comp. on_BIS_SR(LPM0_bits);/ Enter LPM0CACTL1 = CAREF1 + CAREF0 + CAON;/參考源為三極管的閥值電壓 0.55V, Comp. on_BIS_SR(LPM0_bits);/ Enter LPM0/ Timer A0 interrupt service routine#pragma vector=TIMER0_A0_VECTOR_interrupt void Timer_A (void)_BIC_SR_IRQ(LPM0_bits);/ Clear LPM0 bits from 0(SR)7,也可以用比較器A監(jiān)視供電電壓,用0.25VCC和三極管的閥值電壓0.55V進(jìn)行比較,從而監(jiān)視供電電壓的高低,如果電壓低于某個(gè)值時(shí),可以做某種動(dòng)作比如報(bào)警電池電量過低等。(七),低功耗模式1,TI msp430單片機(jī)是一個(gè)特別強(qiáng)調(diào)超低功耗的單片機(jī)系列。對(duì)于低功耗的實(shí)現(xiàn),豐富的中斷和合理的時(shí)鐘系統(tǒng)是必須的,另外相對(duì)獨(dú)立的外設(shè),可以不在CPU的干預(yù)下獨(dú)立地工作,這樣減小了CPU的工作時(shí)間,也大幅降低了系統(tǒng)功耗。2,msp430能夠用中斷迅速把CPU從低功耗模式中喚醒,喚醒時(shí)間小于1us。這就保證了系統(tǒng)的低功耗。讓CPU工作在脈沖狀態(tài),最大限度地讓CPU處于休眠狀態(tài),只有在一些需要CPU干預(yù)的操作或計(jì)算時(shí),才把CPU喚醒。另外,把一些無關(guān)的外圍模塊也都關(guān)閉,使一些需要的模塊盡量單獨(dú)工作,從而可以把CPU休眠。合理地利用中斷,在需要的時(shí)間喚醒cpu。3,msp430應(yīng)用系統(tǒng)價(jià)格和電流消耗等因素會(huì)影響CPU與外圍模塊對(duì)時(shí)鐘的需求,所以系統(tǒng)使用不同的時(shí)鐘信號(hào):ACLK, MCLK, SMCLK。用戶通過程序可以選擇低頻或高頻,這樣可以根據(jù)實(shí)際需要來選擇合適的系統(tǒng)時(shí)鐘頻率,這3種不同的頻率的時(shí)鐘輸出給出不同的模塊,從而更合理地利用系統(tǒng)的電源,實(shí)現(xiàn)整個(gè)系統(tǒng)的超低功耗。4,單片機(jī)的工作模式有:活動(dòng)模式是(AM),低功耗模式0(LPM0)低功耗模式4(LPM4)。不同的低功耗模式禁止不同的模塊,適應(yīng)不同的需求。5,各種低功耗模式的配置有控制位:SCG1,SCG2,OscOff, CPUOff由軟件來配置。而各種低功耗模式又可通過中斷的方式會(huì)到活動(dòng)模式。在CCS的編譯系統(tǒng)中,已經(jīng)做好了各種低功耗模式的宏定義,在軟件中直接調(diào)用就可以了,宏定義如下:#ifdef _ASM_HEADER_#define LPM0(CPUOFF)#define LPM1(SCG0+CPUOFF)#define LPM2(SCG1+CPUOFF)#define LPM3(SCG1+SCG0+CPUOFF)#define LPM4(SCG1+SCG0+OSCOFF+CPUOFF)#else#define LPM0_bits(CPUOFF)#define LPM1_bits(SCG0+CPUOFF)#define LPM2_bits(SCG1+CPUOFF)#define LPM3_bits(SCG1+SCG0+CPUOFF)#define LPM4_bits(SCG1+SCG0+OSCOFF+CPUOFF)#include in430.h#define LPM0_bis_SR_register(LPM0_bits)#define LPM0_EXIT_bic_SR_register_on_exit(LPM0_bits)#define LPM1_bis_SR_register(LPM1_bits)#define LPM1_EXIT_bic_SR_register_on_exit(LPM1_bits)#define LPM2_bis_SR_register(LPM2_bits)#define LPM2_EXIT_bic_SR_register_on_exit(LPM2_bits)#define LPM3_bis_SR_register(LPM3_bits)#define LPM3_EXIT_bic_SR_register_on_exit(LPM3_bits)#define LPM4_bis_SR_register(LPM4_bits)#define LPM4_EXIT_bic_SR_register_on_exit(LPM4_bits)#endif6,具體的例子就不再舉了,就是在CPU不需要工作的時(shí)候進(jìn)入低功耗模式,在需要工作的時(shí)候,通過中斷喚醒。下面說說一般的低功耗的原則:(1),最大化LPM3的時(shí)間,用32KHz晶振作為ACLK時(shí)鐘,DCO用于CPU激活后的突發(fā)短暫運(yùn)行。(2),用接口模塊代替軟件驅(qū)動(dòng)功能。(3),用中斷控制程序運(yùn)行。(4),用可計(jì)算的分支代替標(biāo)志位測(cè)試產(chǎn)生的分支。(5),用快速查表代替冗長的軟件計(jì)算。(6),在冗長的軟件計(jì)算中使用單周的CPU寄存器。(7),避免頻繁的子程序和函數(shù)調(diào)用。(8),盡可能直接用電池供電。此外,在設(shè)計(jì)外設(shè)時(shí)還有一些常規(guī)原則:(1),將不用的FETI輸入端連接到Vss。(2),JTAG端口TMS, TCK和TDI不要連接到Vss。(3),CMOS輸入端不能有浮空節(jié)點(diǎn),將所有輸入端接適當(dāng)?shù)碾娖?。?),不論對(duì)于內(nèi)核還是對(duì)于各外圍模塊,選擇盡可能低的運(yùn)行頻率,如果不影響功能應(yīng)設(shè)計(jì)自動(dòng)關(guān)機(jī)。(八),看門狗定時(shí)器1,單片機(jī)的看門狗定時(shí)器的原始功能是防止程序出錯(cuò)跑飛,但是在系統(tǒng)的研發(fā)階段,一般不使用看門狗的。2,msp的看門狗可以工作在看門狗模式和間隔定時(shí)器模式,在間隔定時(shí)器模式下,就可以當(dāng)一個(gè)普通的定時(shí)器使用。其中工作模式的宏定義如下:#define _MSP430_HAS_WDT_SFR_16BIT(WDTCTL);#define WDTIS0(0x0001)#define WDTIS1(0x0002)#define WDTSSEL(0x0004)#define WDTCNTCL(0x0008)#define WDTTMSEL(0x0010)#define WDTNMI(0x0020)#define WDTNMIES(0x0040)#define WDTHOLD(0x0080)#define WDTPW(0x5A00)#define WDT_MDLY_32(WDTPW+WDTTMSEL+WDTCNTCL)#define WDT_MDLY_8(WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0)#define WDT_MDLY_0_5(WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1)#define WDT_MDLY_0_064(WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0)#define WDT_ADLY_1000(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL)#define WDT_ADLY_250(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0)#define WDT_ADLY_16(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1)#define WDT_ADLY_1_9(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)#define WDT_MRST_32(WDTPW+WDTCNTCL)#define WDT_MRST_8(WDTPW+WDTCNTCL+WDTIS0)#define WDT_MRST_0_5(WDTPW+WDTCNTCL+WDTIS1)#define WDT_MRST_0_064(WDTPW+WDTCNTCL+WDTIS1+WDTIS0)#define WDT_ARST_1000(WDTPW+WDTCNTCL+WDTSSEL)#define WDT_ARST_250(WDTPW+WDTCNTCL+WDTSSEL+WDTIS0)#define WDT_ARST_16(WDTPW+WDTCNTCL+WDTSSEL+WDTIS1)#define WDT_ARST_1_9(WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)下面舉一個(gè)看門狗工作于間隔定時(shí)器模式下的例子:#include void main(void)WDTCTL = WDT_MDLY_32;/ Set Watchdog Timer interval t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論