RealtimePi (preemt rt)
Как видите, программа создает частоту на GPIO 0.
#include <stdio.h>
#include <wiringPi.h>
#include <pthread.h>
#include <sched.h>
#include <sys/mman.h>
int main()
{
const sched_param sp={20};
pthread_setschedparam(pthread_self(),SCHED_FIFO,&sp);
mlockall(MCL_FUTURE|MCL_CURRENT);
wiringPiSetup();
pinMode(0,OUTPUT);
while(true)
{
digitalWrite(0,true);
digitalWrite(0,false);
}
return 0;
}
Я скачал rt linux для raspberry pi в надежде, что он мне поможет генерировать высокую и стабильную частоту. http://unofficialpi.org/Distros/RealtimePi/
Очень плохо понимаю как орудывать этой rt и как с помощью нее добиться поставленной цели. Может я что то не так делаю подскажите пожалуйста.
Частота 25 килогерц, иногда подпрыгивает до 300. Как ее сохранить на 300 стабильно или больше по средствам rt?
И киньте пожалуйста инструкцию как этой rt управлять с описанием команд и куда их писать (желательно на русском). А то везде только или как ее установить или теория.
Ответы (1 шт):
Как всегда, все уже написано до нас. Смотрите ссылку: тут
Мой опыт аппаратной реализации ШИМ такой:
#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int main (void)
{
printf ("Raspberry Pi wiringPi test program\n") ;
if (wiringPiSetupGpio() == -1)
exit (1) ;
pinMode(18,PWM_OUTPUT);
pwmSetClock(20);
pwmSetRange (10) ;
pwmWrite (18, 5);
for (;;) delay (1000) ;
}
Аппаратная реализация ШИМ доступна на 4-х пинах GPIO12, GPIO13, GPIO18, GPIO19.
