倔强青铜铜 2022-06-17 07:59 采纳率: 84%
浏览 35
已结题

简易波形的代码是不是有问题

是我的代码有问题吗?为什么放到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)
{
  P4OUT=51;
  delay_ms(50);
  P4OUT=255;
  delay_ms(50);
}
void main(void)
{
  unsigned int i;
  WDTCTL=WDTPW+WDTHOLD;
  BCSCTL1&=~XT2OFF;
  do
  {
    IFG1&=~XT2OFF;
    for(i=0xff;i>0;i--);
  }
  while((IFG1 & OFIFG)!=0);
  BCSCTL2 |= SELM1;
   P4DIR=0XFF;
   while(1)
    {
     //sawtooth();
     triangular();
     square();
    }
}
  • 写回答

1条回答 默认 最新

  • qllaoda 2022-06-17 09:58
    关注

    P4上接了DAC?
    triangular函数里面的i,不应该用char。 因为在这句 for(i=0;i<255;i++)里, char 永远满足 <255这个条件,第一个循环就跳不出去。
    至少也该用unsigned char,保险点用int

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月25日
  • 已采纳回答 6月25日
  • 创建了问题 6月17日

悬赏问题

  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?