implemented Clrwdt Instruction #34

Merged
Darkress merged 1 commits from clrwdtInstruction into main 2023-06-17 22:52:04 +02:00
3 changed files with 29 additions and 1 deletions
Showing only changes of commit 02f7e52856 - Show all commits

View File

@@ -0,0 +1,24 @@
package de.darkress.pic16f84sim.commands;
import de.darkress.pic16f84sim.microcontroller.*;
public class Clrwdt extends LiteralCommandUtils implements Command
{
public Clrwdt()
{
}
@Override
public void execute()
{
ProgramCounter.incPC();
Cycles.incCycles();
Memory.setRegister(0x03, Memory.getRegister(0x03) | 0x18);
if(Timer.getPrescalerAssignment()) {
Timer.resetTimeToTimerIncrease();
Watchdog.resetWatchdogTimer();
}
}
}

View File

@@ -97,7 +97,7 @@ public class CommandDecoder
if (input == 0x0064) if (input == 0x0064)
{ {
//clrwdt(); return new Clrwdt();
} }
if (input == 0x0009) if (input == 0x0009)

View File

@@ -8,6 +8,10 @@ public class Watchdog
return watchdogTimer; return watchdogTimer;
} }
public static void resetWatchdogTimer() {
watchdogTimer = 18000;
}
public static void decreaseWatchdogTimer() public static void decreaseWatchdogTimer()
{ {
watchdogTimer--; watchdogTimer--;