public void Reset() { timers = new InnerTimer[8]; for(var i = 0; i < timers.Length; i++) { timers[i].CoreTimer = new LimitTimer(machine, TimerFrequency) { AutoUpdate = true }; timers[i].Control = InnerTimer.ControlRegister.InterruptEnable; timers[i].CoreTimer.Limit = 0xFFFFFFFF; timers[i].CoreTimer.LimitReached += () => UpdateInterrupt(i, true); } }
public void Reset() { timers = new InnerTimer[2]; for (var i = 0; i < timers.Length; i++) { var j = i; timers[i].CoreTimer = new LimitTimer(machine.ClockSource, TimerFrequency); timers[i].CoreTimer.AutoUpdate = true; timers[i].CoreTimer.LimitReached += () => UpdateInterrupt(j, true); timers[i].Control = InnerTimer.ControlRegister.InterruptEnable; } timers[0].CoreTimer.Limit = 0xFFFFFFFF; timers[1].CoreTimer.Limit = 0xFFFF; }
public static InnerTimer Start(string name = "*") { nesting++; var timer = new InnerTimer(name); if (nesting == 0) { report.Clear(); deepestTimer = timer; return(timer); } timer.SuperTimer = deepestTimer; deepestTimer.SubTimers.Add(timer); deepestTimer = timer; return(timer); }
public CadenceTTC(Machine machine) { var innerConnections = new Dictionary <int, IGPIO>(); for (var i = 0; i < NumberOfTimers; i++) { innerConnections[i] = new GPIO(); } timers = new InnerTimer[NumberOfTimers]; for (var i = 0; i < timers.Length; i++) { // this line must stay to avoid access to modified closure var j = i; timers[i].CoreTimer = new LimitTimer(machine, TimerFrequency, limit: InitialLimit, direction: Direction.Ascending); timers[i].CoreTimer.LimitReached += () => OnTimerAlarm(j); } Connections = new ReadOnlyDictionary <int, IGPIO>(innerConnections); }
public CadenceTTC(Machine machine) { var innerConnections = new Dictionary<int, IGPIO>(); for(var i = 0; i < NumberOfTimers; i++) { innerConnections[i] = new GPIO(); } timers = new InnerTimer[NumberOfTimers]; for(var i = 0; i < timers.Length; i++) { timers[i].CoreTimer = new LimitTimer(machine, TimerFrequency, limit: InitialLimit, direction : Direction.Ascending); } for(var i = 0; i < timers.Length; i++) { // this line must stay to avoid access to modified closure var j = i; timers[i].CoreTimer.LimitReached += () => OnTimerAlarm(j); } Connections = new ReadOnlyDictionary<int, IGPIO>(innerConnections); }
public GaislerGPTimer(int timersNumber, Machine machine, int frequency = DefaultTimerFrequency) { this.numberOfTimers = timersNumber; if(timersNumber > MaximumNumberTimersImplemented) { this.Log(LogLevel.Warning, "Registration of unsupported number of Timers, defaulting to maximum {0:X]", MaximumNumberTimersImplemented); this.numberOfTimers = MaximumNumberTimersImplemented; } timers = new InnerTimer[numberOfTimers]; var innerConnections = new Dictionary<int, IGPIO>(); for(var i = 0; i < numberOfTimers; i++) { var j = i; timers[i] = new InnerTimer(machine, frequency); timers[i].CoreTimer.LimitReached += () => OnTimerAlarm(j); innerConnections[i] = new GPIO(); } Connections = new ReadOnlyDictionary<int, IGPIO>(innerConnections); Reset(); }
public GaislerGPTimer(int timersNumber, Machine machine, int frequency = DefaultTimerFrequency) { this.numberOfTimers = timersNumber; if (timersNumber > MaximumNumberTimersImplemented) { this.Log(LogLevel.Warning, "Registration of unsupported number of Timers, defaulting to maximum {0:X]", MaximumNumberTimersImplemented); this.numberOfTimers = MaximumNumberTimersImplemented; } timers = new InnerTimer[numberOfTimers]; var innerConnections = new Dictionary <int, IGPIO>(); for (var i = 0; i < numberOfTimers; i++) { var j = i; timers[i] = new InnerTimer(machine, frequency); timers[i].CoreTimer.LimitReached += () => OnTimerAlarm(j); innerConnections[i] = new GPIO(); } Connections = new ReadOnlyDictionary <int, IGPIO>(innerConnections); Reset(); }
public GameTimer() { this.updateTimer = new InnerTimer(); this.drawTimer = new InnerTimer(); }