proteus输出的三角波变形了

使用proteus进行基于msp430的仿真时发现单独输出三角波没问题,但是方波和三角波一起输出的时候三角波就变了,请问是什么原因

img

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);
}
void 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
   P4DIR=0XFF;
   P1DIR=0XFF;


while(1)
  {
    
    triangular();
    square();
  }
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^