请问大家怎么将g2553的时钟设置成外接32.768k晶振的时钟

2019-03-24 08:34发布

才接触430g2553没多久,希望大家可以指导一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
littleshrimp
2019-03-26 00:46
官方代码

  1. //******************************************************************************
  2. //  MSP430G2xx3 Demo - LFXT1 Oscillator Fault Detection
  3. //
  4. //  Description: System runs normally in LPM3 with WDT timer clocked by
  5. //  32kHz ACLK with a 1x4 second interrupt. P1.0 is normally pulsed every
  6. //  second inside WDT interrupt. If an LFXT1 oscillator fault occurs,
  7. //  NMI is requested forcing exit from LPM3. P1.0 is toggled rapidly by software
  8. //  as long as LFXT1 oscillator fault is present. Assumed only LFXT1 as NMI
  9. //  source - code does not check for other NMI sources.
  10. //  ACLK = LFXT1 = 32768, MCLK = SMCLK = Default DCO
  11. //
  12. //  //*External watch crystal on XIN XOUT is required for ACLK*//       
  13. //
  14. //
  15. //           MSP430G2xx3
  16. //         ---------------
  17. //     /||            XIN|-
  18. //      | |               | 32kHz
  19. //      --|RST        XOUT|-
  20. //        |               |
  21. //        |           P1.0|-->LED
  22. //
  23. //  D. Dang
  24. //  Texas Instruments Inc.
  25. //  December 2010
  26. //   Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10
  27. //******************************************************************************

  28. #include <msp430g2553.h>

  29. volatile unsigned int i;

  30. void main(void)
  31. {
  32.   WDTCTL = WDT_ADLY_1000;                   // WDT 1s interval timer
  33.   IE1 |= WDTIE;                             // Enable WDT interrupt
  34.   P1DIR = 0xFF;                             // All P1.x outputs
  35.   P1OUT = 0;                                // All P1.x reset
  36.   P2DIR = 0xFF;                             // All P2.x outputs
  37.   P2OUT = 0;                                // All P2.x reset
  38. // An immedate Osc Fault will occur next
  39.   IE1 |= OFIE;                              // Enable Osc Fault

  40.   while(1)
  41.   {
  42.    P1OUT ^= 0x01;                           // Toggle P1.0 using exclusive-OR
  43.   _BIS_SR(LPM3_bits + GIE);                 // Enter LPM3 w/interrupt
  44.   }
  45. }

  46. #pragma vector=WDT_VECTOR
  47. __interrupt void watchdog_timer (void)
  48. {
  49.     _BIC_SR_IRQ(LPM3_bits);                 // Clear LPM3 bits from 0(SR)
  50. }

  51. #pragma vector=NMI_VECTOR
  52. __interrupt void nmi_ (void)
  53. {
  54.   do
  55.   {
  56.     IFG1 &= ~OFIFG;                         // Clear OSCFault flag
  57.     for (i = 0xFFF; i > 0; i--);            // Time for flag to set
  58.     P1OUT ^= 0x01;                          // Toggle P1.0 using exclusive-OR
  59.   }
  60.   while (IFG1 & OFIFG);                     // OSCFault flag still set?
  61.   IE1 |= OFIE;                              // Enable Osc Fault
  62. }
复制代码

一周热门 更多>

相关问题

    相关文章