我已经创建了一个小的通用4阶段管道,它模拟了提供的时钟周期。然而,我想暂停它,并在中间恢复它,我无法做到这一点。这是我的FIDDLE,暂停我想添加一个标志。在JavaScript中暂停计时器
if flag == 1 //keep simulating
if flag == 0 // pause simulation where it is
if flag == 0 and click resume resume simulation until its end
var flag = 1; //initial value
function pause(){
flag = 0;
}
function resume(){
flag = 1;
}
//i try to check if flag is 0 then alert pause or something but no luck
function startSim(){
document.getElementById('clockDiv').innerHTML = 'Clock Period '+clockPeriod;
if(index == 22){
clearInterval(sim);
}else if(flag == 0){
alert("Simulation Paused");
}else{
clockPeriod++;
fetch();
decode();
execute();
store();
index++;
}
}
我会很感激提示如何做到这一点。
你的代码添加到这个问题,而不是仅仅为纽带,另外,如果你只是想暂停,然后检查你的国旗0的区别在你做任何计算之前,如果没有,不要做任何事情,直到国旗再次变更 – Icepickle
@Ippickle对不起,我已经添加了我的代码。我不确定你的意思我正在做你在说什么 – user1010101
你这里的问题实际上是你的代码是如何加载的。如果您检查控制台输出,您将看到单击暂停时会抛出一个错误,指出它找不到方法“暂停”,所以您的标志不会设置为0.将它添加到标题中而不是使用onload函数jsfiddle的。你可以通过点击javascript设置轮,然后选择包装在身体或包装在头(默认是onload) – Icepickle