Arduino:DigitalRead()和DigitalWrite()的更快替代品?


13

什么是最快的替代调用Arduino的功能digitalread()digitalwrite()?特定于AVR或特定于芯片的解决方案是可以接受的。


3
阅读此内容以及您的最后一个问题,似乎您想快速地做些事情。我认为提供详细信息是有用的。
奥利·格拉泽

@Oli,好主意,谢谢。当前项目是用于RC发射机的调谐系统。它运作良好,但我想提高RC PWM信号的解码效率,以便可以将相同的框架用于其他项目。这是我到目前为止的文章: eastbay-rc.blogspot.com/2011/11/…–
Mark Harrison

Answers:




2

如上所述,直接访问数字端口。但要有风格!

通过将硬编码的值直接写入硬件寄存器,会降低可读性和可移植性。

我已经在Github上发布了一个名为HWA的工具,该工具可让您使用面向对象的接口连接不需要C ++编译器并产生高效二进制代码的硬件。

HWA在那里:https : //github.com/duparq/hwa


1
“高效二进制代码”与实际测量结果相比更具权威性。
德米特里·格里戈里耶夫


0

使用ChipKit Uno32。它比基于AVR的Arduino快得多。它还将处理您的计时问题。


1
我认为在这里购买更快的硬件不是最好的答案,至少在您达到当前硬件的极限并决定需要更快的东西之前,这不是最好的选择。
乔恩·L

1
为什么要下票?他想要最快的解决方案,而不仅仅是我提供的更快的解决方案。谁能建议一个更快的基于Arduino的解决方案?
莱昂·海勒

12
因为ChipKit不是arduino,而是arduino兼容平台。这意味着尽管端口切换速度更快,但很有可能会重写某些库。以太网,XBee,SD卡库可能根本无法工作。此外,Mark特别要求提供对DigitalRead / Write的替代功能调用,而不是针对新平台(doh)。
汉斯,

2
更换硬件永远不是一个好的解决方案。至少您会错过一些良好的学习知识,并且永远不会学到有效使用硬件的知识。
Rick_2047 2011年

1
@ Rick_2047我不会说“从不”-如果需求是新的或扩展的,或者数量增加,那么寻找替代品是有意义的。但是我同意,盲目地将硬件扔到总体软件效率低下是不成熟的-有时甚至不起作用,因为高性能的系统可能会增加自己的开销,有时在某些任务上会比简单的系统慢。真正没有替代品来了解您使用或打算使用的平台。
克里斯·斯特拉顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.