【问题标题】:Why does this arduino code using port manipulation not work?为什么这个使用端口操作的 arduino 代码不起作用?
【发布时间】:2019-07-23 00:53:41
【问题描述】:

我尝试使用本网站上的引脚位置对 Arduino Mega 2560 进行端口操作

https://harperjiangnew.blogspot.com/2013/05/arduino-port-manipulation-on-mega-2560.html?show评论=1563802820673

但它总是报错。

该程序适用于 Arduino mega 2560

代码适用于 Arduino Mega 2560

void setup(){
 PORTA =  B0000000; 
 PORTC =  B0000000; 
}

void loop(){
 PORTA =  B1000110;
 PortC =  B0111000;
 delay(1000);
 PortA =  B0100000;
 delay(500);
 PORTA =  B1110000;
 PortC =  B0001110;
 delay(1000);
 PortA =  B0001000;
 delay(500);
 PORTA =  B0011100;
 PortC =  B1100010;
 delay(1000);
 PortA =  B0000100;
 delay(500);
 PORTA =  B000111;
 PortC =  B111000;
 delay(1000);
 PortA =  B1000000;
 delay(500);
}
exit status 1 'PortC' was not declared in this scope

【问题讨论】:

    标签: arduino


    【解决方案1】:

    您的变量名是不同的大小写,而 Arduino IDE 对变量名区分大小写,大多数语言和 IDE 也是如此。

    https://startingelectronics.org/software/arduino/learn-to-program-course/03-variables/

    将您的PortC 变量重命名为您已声明的PORTC,它应该可以工作。或者,将您的声明切换为PortC,并将所有PORTA 更改为PortA

    对变量使用 Pascal Case 或 CamelCase,对常量使用大写是相当标准的编码风格。学习用于维护代码可读性的编码风格和技术可能会对您有所帮助。

    https://en.wikipedia.org/wiki/Programming_style

    【讨论】:

    • 现在一切都说得通了,我瞎了
    • @HamzaArshad,我们都犯了这个错误。这太容易了,当编译器/IDE 没有告诉你哪里出了问题时,发现这样的“简单”事情变得更加困难。 Arduino 需要升级他们的 IDE 游戏并添加一个 JIT 调试器,以及一大堆其他有用的缺失功能。顺便说一句,如果它确实解决了您的问题,请不要忘记投票并接受它作为答案。
    • 我尝试过投票,但弹出此错误“感谢您的反馈!声望低于 15 人的投票将被记录,但不要更改公开显示的帖子得分。”
    • 看起来你只有 6 个声望点,所以这是有道理的。您仍然可以接受答案(投票下方的复选标记),这也可能使您获得一些分数。我不记得是否有,但它至少将问题标记为已回答。
    猜你喜欢
    • 1970-01-01
    • 2018-11-05
    • 2012-02-22
    • 2023-03-03
    • 2017-10-02
    • 2016-07-10
    • 2010-12-14
    • 2017-04-09
    • 2013-01-30
    相关资源
    最近更新 更多