externer taktgeber

This commit is contained in:
2017-05-11 11:58:44 +02:00
parent 80775aa181
commit 4eebfe8255
4 changed files with 86 additions and 4 deletions

View File

@@ -116,7 +116,13 @@ namespace PIC_Simulator.PIC
public Stack<uint> Stack = new Stack<uint>();
public bool IsSleeping = false;
public List<int> Breakpoints = new List<int>();
public List<int> Breakpoints = new List<int>();
public int TaktgeberFrequenz = 100000;
public int TaktgeberZahler = 100000;
public bool TaktgeberAktiviert = false;
public uint TaktgeberAdresse = 0;
public uint TaktgeberBitnummer = 0;
public PICProgramm()
{
@@ -210,12 +216,22 @@ namespace PIC_Simulator.PIC
return binaryval;
}
public bool Step()
public bool Step(int frequenz)
{
if (PCCounter >= befehle.Count) return true;
PICBefehl aktueller_befehl = befehle[PCCounter];
if (TaktgeberAktiviert)
{
TaktgeberZahler += frequenz;
if (TaktgeberZahler > TaktgeberFrequenz)
{
TaktgeberZahler = 0;
SetRegisterOhneBank(TaktgeberAdresse, TaktgeberBitnummer, !GetRegisterOhneBank(TaktgeberAdresse, TaktgeberBitnummer));
}
}
if (IsSleeping) return false;
if (aktueller_befehl.befehl == ADDWF)