コード例 #1
0
 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);
     }
 }
コード例 #2
0
 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;
 }
コード例 #3
0
ファイル: Timer.cs プロジェクト: alexSatov/univer-csharp
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: CadenceTTC.cs プロジェクト: rte-se/emul8
        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);
        }
コード例 #6
0
ファイル: GaislerGPTimer.cs プロジェクト: rte-se/emul8
        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();
        }
コード例 #7
0
        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();
        }
コード例 #8
0
ファイル: GameTimer.cs プロジェクト: plaurin/MonoGameEngine2D
 public GameTimer()
 {
     this.updateTimer = new InnerTimer();
     this.drawTimer = new InnerTimer();
 }