Я разрабатываю генератор сигналов для Windows ВГД Универсального Javascript приложения для Raspberry Pi 2.Есть ли способ использовать часы прерывание на Raspberry Pi 2 запущенных окон ВГДА
Я подключен MCP4921 DAC к нему через SPI.
Я пытаюсь создать синусоидальную волну с заданной частотой, амплитудой и смещением. У меня уже работает устройство, но когда я пытаюсь создать точную волну, приложение должно замедлять даже точную синхронную волну 10 Гц.
В настоящее время волна генерируется следующим образом.
var Spi = Windows.Devices.Spi;
var Enumeration = Windows.Devices.Enumeration;
var frequency = 10;
var ts = 1/frequency;
var updateFreq = ts/100;
var time = 0;
var offset = 2;
var amplitude = 2;
var resolution = 4095;
var voltage = 5;
var settings = Spi.SpiConnectionSettings(0);
settings.clockFrequency = 2 * Math.pow(10, 7);
settings.mode = Spi.SpiMode.mode0;
var ags = Spi.SpiDevice.getDeviceSelector();
Enumeration.DeviceInformation.findAllAsync(ags, null).done(dis => {
Spi.SpiDevice.fromIdAsync(dis[0].id, settings).done(device => {
for (; ;) {
var value = offset + amplitude * Math.sin(2 * Math.PI * frequency * time);
var dacValue = parseInt(resolution/voltage * value);
if (dacValue > resolution) dacValue = resolution;
time += updateFreq;
if (time > 1000) time = 0;
var buffer = new Uint8Array(2);
buffer[0] = 0x30 | (dacValue >>> 8);
buffer[1] = 0xFF & dacValue;
device.write(buffer);
}
});
});
Я пытался использовать setInterval, я знаю, что это не является хорошей практикой, подождать по крайней мере 10-х мс перед запуском снова.
Есть ли способ изменить таймер малины, часы или что-то другое для выполнения функции прерывания ISR на каждые 0,1 мс?
Я уже смотрел dma регистратуры на BCM2835 Datasheet и BCM2836 Datasheet техническое описание. Я не могу найти никаких решений, как управлять прерываниями малины Pi, только при прерываниях контактов.
Я также знаю, как это сделать в Arduino Uno, но это не поможет мне, поскольку я не знаю, как манипулировать регистрами малины.
Вот изображение генерируемой синусоиды.
Спасибо заранее.