Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

小弟刚学430几天用的5529 改了一下f4系列的频率计 结果不对 大神能帮忙看看吗

$
0
0


//#include "io430.h"
#include "msp430f5529.h"
#include "D:\msp430\example\MSP430_LCD12864\HARDWARE\uc1701.h"
#include "D:\msp430\example\MSP430_LCD12864\HARDWARE\My_SPI.h"
unsigned long int Freq;
unsigned int TA_OverflowCnt;
int main(void)
{
WDTCTL = WDTPW + WDTHOLD;

P2DIR |= BIT2; // smCLK set out to pin
P2SEL |= BIT2;

P5SEL |= BIT4+BIT5; // Select XT1
UCSCTL6 &= ~(XT1OFF); // XT1 On
UCSCTL6 |= XCAP_3; // Internal load cap
UCSCTL3 = 0; // FLL Reference Clock = XT1
// Loop until XT1,XT2 & DCO stabilizes - In this case loop until XT1 and DCo settle
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1&OFIFG); // Test oscillator fault flag

UCSCTL6 &= ~(XT1DRIVE_3); // Xtal is now stable, reduce drive strength
UCSCTL4 |= SELS_5 + SELM_5; // SMCLK=MCLK=XT2

P1DIR &= ~BIT0;
P1SEL |= BIT0;
TBCTL=TBSSEL_2+MC_1+TBIE+TBCLR;
TB0R=32767-1;
_EINT();
UC1701Init();
while(1)
{
LPM1;
Freq = TA_OverflowCnt * 65536 + TA0R;
TA_OverflowCnt = 0;
TA0CTL = TASSEL_0 + MC_2 + TAIE + TACLR;
UC1701DisplayN(1,1,Freq);
}
}


#pragma vector = TIMER0_B1_VECTOR
__interrupt void TB_ISR(void)
{
TB0R=32767-1;
__low_power_mode_off_on_exit();
}

#pragma vector = TIMER0_A1_VECTOR
__interrupt void TA_ISR(void)
{
switch(TA0IV)
{
case 2: break;
case 4: break;
case 10: TA_OverflowCnt++;
break;
}
}

能帮我解决一下吗 谢谢


Viewing all articles
Browse latest Browse all 3634

Trending Articles