Я следующий код работает на Raspberry Pi 3 работает Windows 10 с использованием C#как получить лучшую производительность из GPIO булавки на Raspberry Pi
GPIO Init ....
_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?
или я должен смотреть на какой-либо аппаратный контроллер для управления сервомеханизмом. Я бы предпочел сделать это. Мой код также работает в потоке. я должен удалить threading ???
У меня есть гораздо более простое приложение, в котором код делает работу ... https://github.com/StuartSmith/RaspberryPi-Control-Sg90-Example
Я боюсь, что это нелегко сделать с помощью UWP, особенно если ядро Windows iot не является операционной системой чтения. Однако, если вы хотите иметь точный контроль над переключением gpio, вы можете использовать встроенный контроллер DMA. – Jackie
Спасибо, ваш ответ привел меня к поставщику молнии для контактов GPIO. Я проверю это, чтобы узнать, могу ли я получить требуемую производительность. –
Да, поставщик освещения утверждает, что имеет лучшую производительность по сравнению с драйвером входящих сообщений по умолчанию, msdn предоставляет подробный результат теста при переключении бита GPIO, https://developer.microsoft.com/en-us/windows/iot/docs/lightningperformance. – Jackie