如何从Raspberry Pi的GPIO引脚中获得更好的性能

斯图尔特·史密斯

我在使用C#运行Windows 10的树莓派3上运行以下代码

GPIO初始化....

_gpioController = GpioController.GetDefault();
                _motorPin = _gpioController.OpenPin(Convert.ToInt32(RaspberryGPIOpin);
                _motorPin.SetDriveMode(GpioPinDriveMode.Output);   

GPIO引脚关闭

_motorPin.Write(GpioPinValue.High);
_motorPin.Write(GpioPinValue.Low);

问题是在我的应用程序中,打开和关闭GPI引脚需要100毫秒,但是我需要在不到25毫秒的时间内更改伺服器的方向。

有没有一种方法可以加快GPIO引脚的接通速度?

还是我应该在看某种硬件控制器来控制伺服器。我更愿意这样做。我的代码也正在线程中运行。我应该删除线程吗???

我有一个更简单的应用程序,其中的代码可以正常工作... https://github.com/StuartSmith/RaspberryPi-Control-Sg90-Example

杰基

Microsoft提供了有关使用树莓派2切换GPIO位的完整测试结果,请访问https://developer.microsoft.com/en-us/windows/iot/docs/lightningperformance

因此,您可以看到结果因IoT版本,驱动程序模型,.NET本机工具链甚至编程语言而异。但是在最坏的情况下,大约可以达到10kHz。

我尚未在最新的IoT Redstone 1版本上进行测试,但我猜它应该与TH2具有相似的性能。

因此,通常,选择闪电驱动程序而不是默认的内置驱动程序,应该可以在GPIO端口上获得更好的性能。

同样,禁用.NET本机工具链也将具有明显更好的性能。

我看到您正在使用GPIO引脚来驱动伺服器,在这种情况下,软件时序应该足够好。但是,如果要将其用于需要高精度的时钟源,则不要相信软件时序(照明提供商),则软件抖动始终是不可预测的一种不错的选择是使用内置DMA控制器,该控制器使用硬件定时,并且精度应在1微秒内。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何用QEMU模拟Raspberry Pi Raspbian?

如何在Raspberry Pi上安装FreeRTOS?

如何知道Linux中特定引脚的中断/ GPIO号

如何从Raspberry PI 3中的选定分区启动?

如何在Raspberry Pi上禁用睡眠

如何每周重新启动Raspberry PI

如何使用Raspberry Pi获得更精确的时间测量?

如何在Raspberry Pi中构建Google Assistant?

如何改善代码以获得更好/更快的性能?

Raspberry Pi到AB Controllogix:如何基于连续读取plc标签值来触发GPIO中的输出

如何获得Raspberry Pi的TensorFlow C绑定?

如何安排JavaScript对象以获得更好的性能

如何在不使用高级库的情况下读写Raspberry Pi 4上的GPIO引脚?

如何在html中嵌入Raspberry Pi的流视频?

如何在Windows 8中读取GPIO引脚

Raspberry Pi PHP GPIO读取

如何远程访问我的Raspberry Pi?

如何在Raspberry pi 1中访问用户模式?

如何找到Raspberry PI B的UBootloader地址?

在Raspberry Pi 2中使用后如何释放频道?

从头开始使用Raspberry Pi的GPIO引脚?

如何使用Raspberry Pi Clock Count进行性能测量

将Raspberry PI GPIO引脚连接到遥控器以模拟按钮按下吗?

Raspberry pi GPIO 引脚无法切换

Raspberry Pi - 更多 GPIO 引脚或/和更多 LED

如何异步运行 Raspberry Pi GPIO 输入按钮?

如何通过 SSH 从一个 Raspberry PI 连接到在 VirtualBox 中运行的 Raspberry PI

Docker 访问 Raspberry Pi GPIO 引脚 --privileged 不起作用

如何在 Java (Raspberry pi) 中执行 bash 命令