为初学者提供快速代码建议

时间:2014-04-30 15:14:02

标签: c++ c pic

我是初学者,我想知道这段代码有什么问题。我想计算在portA中按下按钮的次数。然后使用portC中的LEDS显示此值。谢谢

2 个答案:

答案 0 :(得分:5)

如果要将其用作if(或for或其他)语句的正文,则需要在多语句块周围使用大括号:

else if (PORTA.RA2==1) {
    count = count+1;
    PORTC = count;
}

否则只有第一个陈述是有条件的;因此,无论PORTC = count;测试的结果如何,您的代码每次都会执行if

我喜欢在所有这些块上添加括号,即使只有一个语句,所以如果我稍后添加更多语句,我也不会忘记添加它们。

此外,main必须返回int而不是void,您应该更加谨慎地格式化代码以匹配其逻辑结构。

更新:此外,您永远不会初始化count,因此它具有任意浮点值。你想要一个小整数类型,因为它只应该从0到16取整数值,你需要初始化它:

char count = 0;

答案 1 :(得分:1)

如果您将TRISA设置为1,则意味着该端口上的唯一输入是RA0,但您尝试使用RA2。务必清除ANSELA0位。确保正确设置配置位,否则代码可能无法运行。

为了避免将来被投票:

  • 选择信息性问题标题。
  • 正确缩进代码。
  • 说出您正在使用的确切PIC以及它所使用的板。
  • 说出您正在使用的开发环境和编译器。
  • 提供您的设置图片,以便我们检查您的布线。
  • 最重要的是,请告诉我们您如何测试代码,预期结果是什么以及您实际观察的内容。

我的公司在此提供更多建议:http://www.pololu.com/support