IOT 2 개 실행 창을 중단합니다.시계를 사용하는 방법이 있나요 라즈베리 파이에 내가 SPI를 통해 그것을 MCP4921 DAC를 연결 라즈베리 파이 2.</p> <p>에 자바 스크립트 응용 프로그램 신호 발생기 윈도우 여잔 보편적를 개발하고
내가하려는 것은 주어진 주파수, 진폭 및 오프셋으로 사인파를 생성하는 것입니다. 이미 장치가 작동하고 있지만 정확한 파형을 만들려고하면 응용 프로그램이 10Hz의 정확한 sin 파형을 느리게 만듭니다.
현재 이와 같은 웨이브가 생성됩니다.
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);
}
});
});
나는, 다시의를 실행하기 전에이어야 10 밀리 기다릴 나는 그것이 좋은 방법이 아니라는 것을 알고, setInterval을 사용하려고.
0.1 밀리 초마다 사용자 정의 인터럽트 ISR 기능을 실행하기 위해 나무 딸기 타이머, 시계 또는 기타를 수정할 수있는 방법이 있습니까?
나는 이미 BCM2835 Datasheet과 BCM2836 Datasheet 데이터 시트에 dma 레지스터를 보았습니다. 나는 라즈베리 파이 클럭 중단을 관리하는 방법을 찾을 수 없다.
나는 또한 Arduino Uno에서이를 수행하는 방법을 알고 있지만, 나무 딸기 레지스터를 조작하는 방법을 알지 못해서 도움이되지 않습니다.
다음은 생성 된 사인파의 이미지입니다. 사전에
감사합니다.