|
|
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ 感谢参与,应助指数 +1 xiegangmai: 金币+2, 谢谢应助 2012-11-07 20:27:04 清风~: 金币+5, ★★★很有帮助, 十分感谢 2012-11-07 20:56:42
#include
#include "msp430x26x.h"
#define uint unsigned int
#define pi 3.1415926
void TBINIT();
uint mark[45];
uint mark2[45];
uint k=0,j=0;
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; //关狗
BCSCTL1 |= 0X08;
DCOCTL |= 0X40;
uint i=0;
BCSCTL1&=~XT2OFF;
do
{IFG1&=~OFIFG;
for(i=0;i<0xff;i--);
}
while((IFG1&OFIFG)!=0);
BCSCTL2 |=SELM_0+SELS+DIVS_0;
P5SEL|=BIT4;
P5DIR|=BIT4;
P4SEL|=BIT1+BIT0+BIT2;
P4DIR|=BIT1+BIT0+BIT2;
_EINT();
TBINIT();
uint t0=0;
for(i=0;i<45;i++)
{t0=i*2;
mark=1778-889*(1+0.8*sin(pi/45*t0));
mark2=mark-8;
}
TBCCTL0|=CCIE;
LPM0;
}
void TBINIT()
{TBCTL|=TBSSEL_2+TBCLR;
TBCTL|=MC_3;
TBCCR0=1778;
TBCCTL1=OUTMOD_2;
TBCCTL2=OUTMOD_6;
}
#pragma vector=TIMERB0_VECTOR
__interrupt void Time_B(void)
{
TBCCR1=mark[j];
TBCCR2=mark2[j];
j+=1;
if(j==45)
j=0;
} |
|