Use cm_get_neg_node_name to improve output.

Set a breakpoint at pulse maxumum time.
Set first breakpoint during initialization.
This enables large TSTEP times.
This commit is contained in:
Holger Vogt 2025-06-04 12:33:05 +02:00
parent 32b8be0896
commit 61633d39d9
1 changed files with 10 additions and 3 deletions

View File

@ -176,6 +176,10 @@ void cm_seegen(ARGS) /* structure holding parms,
STATIC_VAR(last_ctrl) = (double *) malloc(sizeof(double));
last_ctrl = (double *) STATIC_VAR(last_ctrl);
*last_ctrl = ctrl;
/* set breakpoints at new pulse start and pulse maximum times */
double tatmax = *last_t_value + tfall * trise * log(trise/tfall) / (trise - tfall);
cm_analog_set_perm_bkpt(*last_t_value);
cm_analog_set_perm_bkpt(tatmax);
}
else {
@ -201,12 +205,15 @@ void cm_seegen(ARGS) /* structure holding parms,
}
if (tcurr > *last_t_value + tperiod * 0.9) {
/* return some info */
cm_message_printf("port no.: %d, port name: %s, time: %e",
*pulse_number, cm_get_node_name("out", *pulse_number - 1), *last_t_value);
cm_message_printf("port no.: %d, port name: out, \nnode names: %s, %s, pulse time: %e",
*pulse_number, cm_get_node_name("out", *pulse_number - 1),
cm_get_neg_node_name("out", *pulse_number - 1), *last_t_value);
/* set the time for the next pulse */
*last_t_value = *last_t_value + tperiod;
/* set breakpoint at new pulse start time */
/* set breakpoints at new pulse start and pulse maximum times */
double tatmax = *last_t_value + tfall * trise * log(trise/tfall) / (trise - tfall);
cm_analog_set_perm_bkpt(*last_t_value);
cm_analog_set_perm_bkpt(tatmax);
(*pulse_number)++;
if (*pulse_number > PORT_SIZE(out)) {
if (PARAM(perlim) == FALSE)