MSP430F5529 程序没有看明白,求中文注释。主要目的是为了完成频率改变,谢谢~~

MSP430F5529 程序没有看明白,求中文注释。主要目的是为了完成频率改变,谢谢~~,第1张

您好,这样的:

/*首先将WDT设为定时器功能。而中断服务子程序则是把WDT改为看门狗功能。这样就通过中断控制的周期性的重启程序,实现了LED闪烁*/

/*注意,这里默认的时钟源不是32KHZ,而是内部的DCO-SMCLK(之后会讲到)1.045MHZ。所以前面WDTIS定义的时间大约都要缩小1045/32=32倍*/

#include <msp430.h>

void main(void)

{

/*清零-设定为计数器-时间设定为010模式,即256S/32=8S*/

WDTCTL=WDTPW+WDTCNTCL+WDTTMSEL+WDTIS1

__enable_interrupt()//开总中断

SFRIE1|=WDTIE //开看门狗定时器中断

P1DIR=0xff

int i,j

P1OUT=0xff

for(i=0i<30000i++)

for(j=0j<50j++) //延时约8S

P1OUT=0x00

while(1)

}

/*中断服务程序*/

#pragma vector=WDT_VECTOR

__interrupt void WatchTimer(void)

{

WDTCTL=WDTPW+WDTCNTCL+WDTIS1 //看门狗模式,时间设定约为8S

}

void USCIA0_Init(void)

{

P3SEL |= BIT3+BIT4 // P3.3,4 = USCI_A0 TXD/RXD

UCA0CTL1 |= UCSWRST // **Put state machine in reset**

UCA0CTL1 |= UCSSEL__ACLK// ACLK

UCA0BR0 = 34 // 4MHz 115200

UCA0BR1 = 0 // 4MHz 115200

UCA0MCTL |= UCBRS_6 + UCBRF_0 // Modulation UCBRSx=1, UCBRFx=0

UCA0CTL1 &= ~UCSWRST// **Initialize USCI state machine**

//IE2 |= UCA0RXIE + UCA0TXIE // Enable USCI_A0 TX/RX interrupt

//IE2 |= UCA0RXIE// Enable USCI_A0 RX interrupt

//__bis_SR_register(GIE) // Enter LPM3 w/ interrupts enabled

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11074783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存