예제 #1
0
        private void btnCalc_Click(object sender, EventArgs e)
        {
            errorProvider.Clear();
            warningProvider.Clear();

            if (txtTarget.Text == "")
            {
                errorProvider.SetError(txtTarget, "cannot be empty");
                return;
            }
            else if (!double.TryParse(txtTarget.Text, out _))
            {
                errorProvider.SetError(txtTarget, "NaN");
                return;
            }
            else if (txtFosc.Text == "")
            {
                errorProvider.SetError(txtFosc, "cannot be empty");
                return;
            }
            else if (!double.TryParse(txtFosc.Text, out _))
            {
                errorProvider.SetError(txtFosc, "NaN");
                return;
            }
            else if (timer.SelectedIndex < 0)
            {
                errorProvider.SetError(timer, "no timer selected");
                return;
            }

            TimerCalc timerCalc = new TimerCalc(txtFosc.Text, txtTarget.Text, prescaler,
                                                postscaler, txtScalerOverride.Text, timer.Text, chckCalcScalers.Checked);

            log(timerCalc.logv);
            txtAccuracy.Text      = timerCalc.accuracy.ToString();
            txtActualPeriod.Text  = timerCalc.actual.ToString();
            txtPreload.Text       = timerCalc.preload.ToString();
            txtFormattedCode.Text = timerCalc.timerCode;
            txtSteps.Text         = timerCalc.actualTicks.ToString();
            txtDeviation.Text     = timerCalc.deviation.ToString();

            if (int.Parse(txtSteps.Text) > 255)
            {
                warningProvider.SetError(txtSteps, "maximum exceeded");
            }
        }
예제 #2
0
 private void timerCode_SelectedIndexChanged(object sender, EventArgs e)
 {
     txtTimerCode.Text = TimerCalc.getTimerCode(timerCode.Text);
 }