EEPROM-time

This commit is contained in:
2024-05-27 14:11:17 +02:00
parent 08b815c64c
commit 6d0c47c6c0
3 changed files with 19 additions and 7 deletions

View File

@ -258,14 +258,13 @@ public class Commands {
public static void addExecutionTime(int i) {
totalExecutionTime += i;
Timer.cycles(i);
EEPROM.registerTime(false);
}
public static long getTotalExecutionTime() {
return totalExecutionTime;
}
public static void MOVWF(int file) {
DataRegister.setRegister(file, wRegister);
}

View File

@ -135,7 +135,7 @@ public class Controller_Frontend {
e.printStackTrace();
}
});
Thread.sleep(50); //Verzögerungszeit in Millisekunden
Thread.sleep(80); //Verzögerungszeit in Millisekunden
}
} catch (InterruptedException e) {
e.printStackTrace();

View File

@ -11,6 +11,8 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import static fabrik.simulator.pic16f84.Commands.getTotalExecutionTime;
public class EEPROM {
private static final int EEDATA = 0x08;
private static final int EEADR = 0x09;
@ -26,6 +28,8 @@ public class EEPROM {
private static boolean writeControl = false;
private static boolean [] eecon2stages = {false, false};
private static long startTime;
public static long read (int address) {
FileReader reader;
try {
@ -73,10 +77,19 @@ public class EEPROM {
DataRegister.setDirectBit(EECON1, WRERR, 1);
return;
}
eecon2stages = new boolean[]{false, false};
DataRegister.setDirectBit(EECON1, EEIF, 1);
DataRegister.setDirectBit(EECON1, WR, 0);
writeControl = false;
registerTime(true);
}
public static void registerTime(boolean reset) {
if (reset)
startTime = getTotalExecutionTime();
else if ((getTotalExecutionTime() >= (startTime + 1000)) && writeControl) {
eecon2stages = new boolean[]{false, false};
DataRegister.setDirectBit(EECON1, EEIF, 1);
DataRegister.setDirectBit(EECON1, WR, 0);
writeControl = false;
startTime = 0;
}
}
public static void parse(int address, int content, int opcode) {