Ejemplo n.º 1
0
 public ApdTimer(Scheduler sched, Calculator.InterruptId interruptId, Calculator master, double period)
 {
     NextIncrement         = new Scheduler.WallTimeEvent();
     NextIncrement.Tag     = "HW Timer tick " + interruptId.ToString();
     NextIncrement.Handler = new EventHandler <Scheduler.WallTimeEvent>(DoTick);
     Scheduler             = sched;
     InterruptId           = interruptId;
     Master      = master;
     this.period = period;
     Scheduler.EnqueueRelativeEvent(NextIncrement, Period);
 }
Ejemplo n.º 2
0
        public void RefreshData()
        {
            double oldFreq = Calculator.Cpu.Clock.Frequency;

            if (oldFreq != OldFreq)
            {
                OldFreq             = oldFreq;
                frequencyLabel.Text = Math.Round(OldFreq / 1000000, 3).ToString() + " MHz";
            }
            execTimeLabel.Text = Math.Round(Master.AverageDeltaT * 1000, 3) + " ms (relative to " + Math.Round(Master.ExecutionQuantum * 1000, 0) + " ms nominal)" + ((int)(Master.ExecutionSpeed * 100) != 100 ? " (scaled with speed)" : "");
            Calculator.InterruptId oldInts = Calculator.Interrupts;
            if (oldInts != OldInts)
            {
                OldInts        = oldInts;
                intsLabel.Text = OldInts.ToString();
            }
        }