我是初学者,我想知道这段代码有什么问题。我想计算在portA中按下按钮的次数。然后使用portC中的LEDS显示此值。谢谢
答案 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位。确保正确设置配置位,否则代码可能无法运行。
为了避免将来被投票:
我的公司在此提供更多建议:http://www.pololu.com/support