diff --git a/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java b/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java index b46ba84..9c6a5d2 100644 --- a/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java +++ b/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java @@ -241,8 +241,7 @@ public class Controller_Frontend { } WatchdogTimer.testAndTrigger(); Table.refresh(); - Stage stage = (Stage) stepintoButton.getScene().getWindow(); - CreateWindow.refreshTable(stage); + CreateWindow.refreshTable(); IOPorts.refreshUI(getTRISbuttons(), getPORTbuttons()); updateStack(); updateWatchdog(); @@ -578,15 +577,6 @@ public class Controller_Frontend { stackVisual.setItems(observedList); } -// -// @FXML -// private static Label dummyLabel; -// -// public static void triggerTableRefresh(){ -// dummyLabel.setText(" "); -// CreateWindow.refreshTable((Stage) dummyLabel.getScene().getWindow()); -// } - private void updateWatchdog (){ wdtCheck.setText("Watchdog-Timer: " + WatchdogTimer.get() + "µs"); } diff --git a/src/main/java/fabrik/simulator/pic16f84/CreateWindow.java b/src/main/java/fabrik/simulator/pic16f84/CreateWindow.java index f76553a..44a87dc 100644 --- a/src/main/java/fabrik/simulator/pic16f84/CreateWindow.java +++ b/src/main/java/fabrik/simulator/pic16f84/CreateWindow.java @@ -41,7 +41,7 @@ public class CreateWindow extends Application { launch(args); } - public static void refreshTable(Stage stage) { + public static void refreshTable() { grid.getChildren().remove(table); table= Table.refresh(); grid.add(table, 1, 1); diff --git a/src/main/java/fabrik/simulator/pic16f84/DataRegister.java b/src/main/java/fabrik/simulator/pic16f84/DataRegister.java index 3089758..4f76dfb 100644 --- a/src/main/java/fabrik/simulator/pic16f84/DataRegister.java +++ b/src/main/java/fabrik/simulator/pic16f84/DataRegister.java @@ -44,6 +44,7 @@ public class DataRegister { dataRegister[TRISB] = 0b11111111; dataRegister[0x80 + PCLATH] = dataRegister[PCLATH]; dataRegister[0x80 + INTCON] = dataRegister[INTCON]; + IOPorts.resetTRIS(); System.out.println(Arrays.toString(dataRegister)); } diff --git a/src/main/java/fabrik/simulator/pic16f84/IOPorts.java b/src/main/java/fabrik/simulator/pic16f84/IOPorts.java index f324481..2d80afa 100644 --- a/src/main/java/fabrik/simulator/pic16f84/IOPorts.java +++ b/src/main/java/fabrik/simulator/pic16f84/IOPorts.java @@ -188,10 +188,9 @@ public class IOPorts { allLEDsB = b; } - private static void refreshTable(ToggleButtonGroup parent) { - Stage stage = (Stage) parent.getScene().getWindow(); + public static void refreshTable(ToggleButtonGroup parent) { Table.refresh(); - CreateWindow.refreshTable(stage); + CreateWindow.refreshTable(); } private static int[] getToggleParams(ToggleButtonGroup parent) { @@ -219,4 +218,8 @@ public class IOPorts { dataLatch = new int[2]; refreshPorts(); } + + public static void resetTRIS (){ + trisLatch = new int[] {0xFF, 0xFF}; + } } diff --git a/src/main/java/fabrik/simulator/pic16f84/Table.java b/src/main/java/fabrik/simulator/pic16f84/Table.java index cacb008..c601bd9 100644 --- a/src/main/java/fabrik/simulator/pic16f84/Table.java +++ b/src/main/java/fabrik/simulator/pic16f84/Table.java @@ -110,11 +110,9 @@ public class Table { VBox labels = new VBox(); labels.getChildren().addAll(spacing, pcLabel, pclLabel, pclathLabel, wRegisterLabel, cLabel, dcLabel, zLabel, statusLabel, fsrLabel, prescalerLabel, intconLabel); VBox button = new VBox(); - Button resetButton = new Button("Register reset"); + Button resetButton = new Button("SFR reset"); resetButton.setOnAction(e -> { - DataRegister.initDataRegister(); - DataRegister.setPC(DataRegister.getPC()-1); - triggerRefresh(); + triggerReset(); }); button.getChildren().addAll(spacing2, resetButton); @@ -131,9 +129,10 @@ public class Table { } - private static void triggerRefresh() { - //Controller_Frontend.triggerTableRefresh(); + private static void triggerReset() { + DataRegister.initDataRegister(); IOPorts.refreshUI(Controller_Frontend.getTRISbuttons(), Controller_Frontend.getPORTbuttons()); + CreateWindow.refreshTable(); } public static void main(String[] args) {