请问这个程序放proteus为啥仿真不出波形呀?编译的时候没有报错
#include "msp430f249.h"
#define CPU_F ((double)8000000)
#define delay_us(x)__delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x)__delay_cycles((long)(CPU_F*(double)x/1000.0))
//void sawtooth(void)
//{
// char i;
// P4OUT=i++;
// delay_us(390);
//}
void triangular(void)//三角波
{
char i;
for(i=0;i<255;i++)
{
P4OUT=i;
delay_us(195);
}
for(i=255;i>0;i--)
{
P4OUT=i;
delay_us(195);
}
}
void square(void)//方波
{
P1OUT=51;
delay_ms(50);
P1OUT=255;
delay_ms(50);
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
{
static unsigned int task_to_execute = 0;
if (task_to_execute == 0)
{
P1OUT |= BIT0;
square();
// 执行第一个任务
}
else
{
P4OUT |= BIT0;
triangular();
// 执行第二个任务
}
// 切换任务
task_to_execute = !task_to_execute;
}
int main(void)
{
unsigned int i;
WDTCTL=WDTPW+WDTHOLD;//停止看门狗功能
BCSCTL1&=~XT2OFF;//使TX2有效,TX2上电时默认为关闭
do
{
IFG1&=~XT2OFF;//清除振荡器失效标志
for(i=0xff;i>0;i--);//延时,待稳定
}
while((IFG1 & OFIFG)!=0);//振荡器失效标志
BCSCTL2 |= SELM1;//使MCLK=XT2
//// 设置 P1 和 P4 管脚为输出模式
P1DIR |= BIT0;
P4DIR |= BIT0;
// 设置 Timer A 为计数器模式,计数器值为 32768
TA0CTL = TASSEL_1 + MC_1 + TACLR;
TA0CCR0 = 32768 - 1;
// 启用 Timer A 中断
TA0CCTL0 |= CCIE;
// 启用全局中断
__enable_interrupt();
// 循环等待
while(1)
{
}
}