Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

需要速度吗?

Posted on 2025-05-25

我们制作了一个关于如何加速 Arduino 代码的视频,具体来说就是如何避免使用DigitalWrite 。众所周知, DigitalWrite慢得要命。事实上,快速搜索一下就能找到一篇 2010 年的 Hackaday 文章,文中指出DigitalWrite 比直接使用原生引脚寄存器切换引脚慢 50 倍。但这仍然是那些一代又一代被反复提及的事实之一。这怎么会是新的呢?

首先,有时候你根本不需要速度。当你只是按照人类的时间表闪烁LED时,Arduino的通用功能就足够了。我写过很多符合这种描述的实用固件。当时间要求不严格时,慢得像泥土一样快就足够了。

但最终,你会想要构建一个项目,旧的低速引脚切换方法根本无法满足需求。也许它是一个大型 LED 矩阵,也许是一个电机控制应用,循环时间非常重要。又或许它正在驱动音频或视频之类的应用,只需要更高的每秒位数。一个解决方法是巧妙地编写代码,或许可以回归到汇编语言原语,但我认为,正确的方法几乎总是使用芯片制造商提供的硬件外设。

例如,在上面链接的视频结尾,黑客想要驱动一个大型移位寄存器串,使其点亮一个 LED 矩阵。这正是SPI 的用途所在,而实现这一点使得项目能够节省时间,并且只需几行代码即可完成。这就是方法。

这让我想到了Arduino抽象化所带来的一把双刃剑。通过抽象芯片的硬件外设,它使代码更易于移植,当然也更容易被那些暂时不想学习SPI、I2C、I2S和DMA的初学者理解。但是,通过将芯片的内部工作原理隐藏在“用户友好”的库中,它让新用户看不到这些硬件外设的实用应用,而这些外设正是我们所需要的,正是聪明的芯片设计工程师倾注了他们的心血和智慧才打造出来的。

不过,这并非真正想抨击 Arduino。每个人都必须从某个地方开始,而这些抽象概念非常适合入门。而且,既然一切都是开源的,也就没有什么能阻止你深入研究数据手册了。你只需要知道你需要这样做。这就是为什么我们大约每五年就会制作类似的视频,向下一代黑客展示,在抽象概念背后有很多东西可以学习。

本文摘自 Hackaday.com 的新闻简报,该简报已持续发布超过 200 周,每周七天更新。其中还包含我们过去七天精选的文章,您可以在新闻简报的网页版中查看。想每周五早上收到这类文章吗?快来订阅吧!

原文: https://hackaday.com/2025/05/24/the-need-for-speed/

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • Elad Gil
  • Ellie Huxtable
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme