你好,关于喂狗语句 ,问题如下,谢谢!
1、 MCU是msp430F413,使用外部晶振32K,看门狗定时器设为1S一次,请问喂狗语句是这句:WDT_ARST_1000,是吗?
部分程序如下:
WDTCTL = WDT_ADLY_1000; // // WDT 1 s, ACLK, interval timer
__bis_SR_register(LPM3_bits + GIE); // Enter LPM3 w/interrupt
while(1)
{
WDT_ARST_1000; /* 1000ms " */
}
2、WDT 定时设置与对应喂狗语句,是不是这样?
(定时设置) (喂狗语句)
WDT_ADLY_1000 : WDT_ARST_1000
WDT_ADLY_250 : WDT_ARST_250
WDT_ADLY_16 : WDT_ARST_16
WDT_ADLY_1_9 : WDT_ARST_1_9
灰小子:
1、WDT_ARST_1000是设置看门狗计时周期的语句,具体的周期时间和选用的时钟频率有关系。是2的15次方的时钟数。
2、喂狗一般是用:WDTCTL =WDT_ARST_1000+WDTCNTCL;
user4385857:
回复 灰小子:
1、使用外部晶振32K,工作频率在1MHZ,
SCFQCTL = SCFQ_1M; // 1MHZ fMCLK=32*fACLK */ FLL_CTL0 |= XCAP14PF; // Configure load caps Set load cap for 32k xtal XIN Cap = XOUT Cap = 14pf */
2、可以调用250mS一次来喂狗吗,? 谢谢!:WDTCTL =WDT_ARST_250+WDTCNTCL; //250ms
Susan Yang:
回复 user4385857:
有相关例程的,您可以看一下(用WDT的定时模式来定时250ms翻转P5.1)
/* --COPYRIGHT--,BSD_EX* Copyright (c) 2012, Texas Instruments Incorporated* All rights reserved.** Redistribution and use in source and binary forms, with or without* modification, are permitted provided that the following conditions* are met:** *Redistributions of source code must retain the above copyright*notice, this list of conditions and the following disclaimer.** *Redistributions in binary form must reproduce the above copyright*notice, this list of conditions and the following disclaimer in the*documentation and/or other materials provided with the distribution.** *Neither the name of Texas Instruments Incorporated nor the names of*its contributors may be used to endorse or promote products derived*from this software without specific prior written permission.** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.**********************************************************************************MSP430 CODE EXAMPLE DISCLAIMER** MSP430 code examples are self-contained low-level programs that typically* demonstrate a single peripheral function or device feature in a highly* concise manner. For this the code may rely on the device's power-on default* register values and settings such as the clock configuration and care must* be taken when combining code from several examples to avoid potential side* effects. Also see www.ti.com/grace for a GUI- and www.ti.com/msp430ware* for an API functional library-approach to peripheral configuration.** --/COPYRIGHT--*/ //****************************************************************************** //MSP-FET430P410 Demo - WDT, Toggle P5.1, Interval Overflow ISR, 32kHz ACLK // //Description: Toggle P5.1 using WDT configured for Interval Timer mode. //Interrupt toggles LED every 250ms based on 32kHz ACLK WDT clock source. //ACLK = LFXT1 = 32768Hz, MCLK = SMCLK = default DCO = 32 x ACLK = 1048576Hz ////* An external watch crystal between XIN & XOUT is required for ACLK *//// //MSP430F413 //----------------- ///|\|XIN|- //| || 32kHz //--|RSTXOUT|- //|| //|P5.1|-->LED // //M. Buccini //Texas Instruments Inc. //Feb 2005 //Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.21A //***************************************************************************** #include <msp430.h>int main(void) {WDTCTL = WDT_ADLY_250;// WDT 250ms, ACLK, interval timerFLL_CTL0 |= XCAP14PF;// Configure load capsIE1 |= WDTIE;// Enable WDT interruptP5DIR |= 0x02;// Set P5.1 to output direction__bis_SR_register(LPM3_bits + GIE);// Enter LPM3 w/interrupt }// Watchdog Timer interrupt service routine #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__) #pragma vector=WDT_VECTOR __interrupt void watchdog_timer(void) #elif defined(__GNUC__) void __attribute__ ((interrupt(WDT_VECTOR))) watchdog_timer (void) #else #error Compiler not supported! #endif {P5OUT ^= 0x02;// Toggle P5.1 using exclusive-OR }