有人做过430G2553D 频率计吗?

2019-03-24 10:12发布

  1. #include <msp430f6638.h>
  2. #include <stdint.h>
  3. #include<stdio.h>
  4. #include "HAL_PMM.h"
  5. #include "HAL_UCS.h"
  6. #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
  7. void Up_ClockFor_20MHZ(void){
  8.         SetVCore(PMMCOREV_3);                                // Set Vcore to accomodate for max. allowed system speed
  9.         UCSCTL3 |= SELREF_2;                // Set DCO FLL reference = REFO
  10.         UCSCTL4 |= SELA_2;                  // Set ACLK = REFO
  11.         Init_FLL_Settle(20000, 630);                // Set system clock to max (20MHz)
  12. }

  13. /*******************************************************************************
  14. * Function name  : init_clk
  15. * Description         : set SMCLK=XT2=4Mhz ACLK=REFO=32.768k
  16. * Input                  : None
  17. * Output                 : None
  18. * Return                 : None
  19. *******************************************************************************/
  20. void init_clk()
  21. {
  22. //          P3DIR |= BIT4;                            // SMCLK set out to pins
  23. //          P3SEL |= BIT4;

  24.           P7SEL |= BIT2+BIT3;                       // Port select XT2

  25.           while(BAKCTL & LOCKIO)                    // Unlock XT1 pins for operation
  26.              BAKCTL &= ~(LOCKIO);


  27.           UCSCTL6 &= ~XT2OFF;                       // Enable XT2
  28.           UCSCTL3 |= SELREF_2;                      // FLLref = REFO
  29.                                                     // Since LFXT1 is not used,
  30.                                                     // sourcing FLL with LFXT1 can cause
  31.                                                     // XT1OFFG flag to set
  32.           UCSCTL4 |= SELA_2;                        // ACLK=REFO,SMCLK=DCO,MCLK=DCO

  33.           // Loop until XT1,XT2 & DCO stabilizes - in this case loop until XT2 settles
  34.           do
  35.           {
  36.             UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
  37.                                                     // Clear XT2,XT1,DCO fault flags
  38.             SFRIFG1 &= ~OFIFG;                      // Clear fault flags
  39.           }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag

  40.           UCSCTL6 &= ~XT2DRIVE1;                    // Decrease XT2 Drive according to
  41.                                                     // expected frequency
  42.           UCSCTL4 |= SELS_5 + SELM_5;               // SMCLK=MCLK=XT2                               // Loop in place
  43. }
  44. void Mic_ad_init()
  45. {
  46.   P4DIR |= BIT0;
  47.   P4DS |= BIT0;
  48.   P4OUT |= BIT0;  //power source
  49.   P6SEL |=BIT5;    //P6.5-->A5
  50.   P5DIR |=BIT1;     //
  51.   P5OUT&=~BIT1;

  52.   ADC12CTL0 = ADC12ON+ADC12SHT0_5+ADC12MSC;
  53.   ADC12CTL1 = ADC12CSTARTADD_5+ADC12SHP+ADC12SSEL_0+ADC12CONSEQ_2;                     // Use sampling timer
  54.   ADC12MCTL5 = ADC12INCH_5;
  55.   ADC12CTL0 |= ADC12ENC;
  56.   DAC12_0CTL0 = DAC12IR+DAC12SREF_1 + DAC12AMP_7 + DAC12ENC + DAC12CALON+ DAC12OPS;
  57.   DMACTL0 |= DMA0TSEL3 + DMA0TSEL4;
  58.   __data16_write_addr((unsigned short) &DMA0SA,(unsigned long) 0x072Au);

  59.     __data16_write_addr((unsigned short) &DMA0DA,(unsigned long) 0x0784u);
  60.   DMA0SZ = 1;
  61.   DMA0CTL |= DMADT2 + DMAEN;
  62.   ADC12CTL0 |= ADC12SC;
  63.   _EINT();
  64.   while(1);
  65.   _DINT();
  66.   DMA0CTL &= ~DMAEN;
  67.   ADC12CTL0 &= ~ADC12ENC;
  68.   DAC12_0CTL0 &= DAC12ENC;
  69.   P4OUT &= ~BIT0;  //power source
  70.   P4DS &= ~BIT0;
  71.   P4DIR &= ~BIT0;
  72.   P6SEL &= ~BIT5;    //P6.5-->A5
  73.   P5OUT |= BIT1;
  74.   P5DIR &= ~BIT1;     //
  75. }
  76. void main(void)
  77. {
  78.   WDTCTL = WDTPW+WDTHOLD;   // Stop WDT
  79.   SetVCore(PMMCOREV_3);
  80.    init_clk();
  81.    Up_ClockFor_20MHZ();
  82.    Mic_ad_init();
  83.    while(1);
  84. }
复制代码如何写这个程序流程图?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
pyxzy123456
1楼-- · 2019-03-24 17:06
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章