⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtthread.java

📁 Java Op Processor java vhdl processor
💻 JAVA
字号:
/***	RtThread.java on PC for simulation of JOP*/package joprt;import com.jopdesign.sys.Const;import com.jopdesign.sys.Native;public class RtThread {	private boolean nextOk;	private int period;			// period in us	private int offset;			// offset in usprivate int next;	private static boolean start;	public RtThread(int prio, int us) {			this(prio, us, 0);	}	public RtThread(int prio, int us, int off) {		period = us;		nextOk = false;		new Thread() {			public void run() {				runner();			}		}.start();	}	public void run() {	}	void runner() {		waitForMission();		run();	}	public static void startMission() {		start = true;	}	public void waitForMission() {		while (!start) {			yield();		}		nextOk = true;		next = Native.rd(Const.IO_US_CNT);	}	public boolean waitForNextPeriod() {		if (!nextOk) {			next = Native.rd(Const.IO_US_CNT);		// this should not happen!			nextOk = true;							// you forgot to wait on start mission		}		next += period;		int i = Native.rd(Const.IO_US_CNT);		if (next-i < 0) {							// missed time!			next = i;								// correct next			return false;		}/*		state = WAITING;		yield();*/		while (next-Native.rd(Const.IO_US_CNT) >= 0) {	// 'busy' wait with yield.try { Thread.sleep(1); } catch (Exception e) {}			yield();		}		return true;	}	/**	*	dummy yield() for compatibility reason.	*/	public static void yield() {}	public static void sleepMs(int millis) {			int next = Native.rd(Const.IO_US_CNT)+millis*1000;		while (Native.rd(Const.IO_US_CNT)-next < 0) {try { Thread.sleep(1); } catch (Exception e) {}			yield();		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -