gpt4 book ai didi

java 方波

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:33:57 26 4
gpt4 key购买 nike

我正在尝试使用 java 在并行端口上创建一个方波。到目前为止,我已经有了这个实现。

public class Wave extends Thread {

public Wave() {
super();
setPriority(MAX_PRIORITY);
}

@Override
public void run() {
Wave.high();
LockSupport.parkNanos(20000000);
Wave.low();
LockSupport.parkNanos(20000000);
}

public static native void high();
public static native void low();
}

其中 high() 和 low() 是使用 JNI 实现的(共享 C 库控制并行端口)。它工作得很好;它产生一个周期约为 40ms 的方波。当计算机空闲时,使用示波器看起来标准偏差约为 10 微秒。当计算机不空闲时,标准偏差会变得更大。我认为这是因为发生了更多的上下文切换,并且线程在等待状态中停留的时间太长,没有准确达到指定的 20 毫秒。

有没有办法让我的实现更准确?我知道我可以为此使用硬件,但我想知道我是否也可以使用软件来做到这一点。

是否可以选择“监听”时钟并执行计时到毫秒的操作?

最佳答案

仅仅“听”时钟并不能解决上下文切换导致抖动的问题。

如果您可以为此专门提供一个核心:

这样您应该能够实现非常低的抖动。

当然,如果任务只是简单地产生一个方波,这对计算资源的使用效率非常低。

关于 java 方波,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10431223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com