Browse Source

PULSE: correct timing in case of phase != 0

pre-master-46
h_vogt 16 years ago
parent
commit
f21f2a05bc
  1. 7
      src/spicelib/devices/vsrc/vsrcacct.c
  2. 5
      src/spicelib/devices/vsrc/vsrcload.c

7
src/spicelib/devices/vsrc/vsrcacct.c

@ -78,17 +78,12 @@ VSRCaccept(CKTcircuit *ckt, GENmodel *inModel)
/* normalize phase to 0 - 360° */ /* normalize phase to 0 - 360° */
/* normalize phase to cycles */ /* normalize phase to cycles */
phase = PHASE / 360.0; phase = PHASE / 360.0;
if (phase >=0)
phase -= floor(phase);
else
phase -= ceil(phase);
phase = fmod(phase, 1.0);
deltat = phase * PER; deltat = phase * PER;
while (deltat > 0) while (deltat > 0)
deltat -= PER; deltat -= PER;
time += deltat; time += deltat;
tshift = TD - deltat; tshift = TD - deltat;
while (tshift < 0)
tshift += PER;
#endif #endif
/* gtri - end - wbk - add PHASE parameter */ /* gtri - end - wbk - add PHASE parameter */

5
src/spicelib/devices/vsrc/vsrcload.c

@ -97,10 +97,7 @@ VSRCload(GENmodel *inModel, CKTcircuit *ckt)
/* normalize phase to cycles */ /* normalize phase to cycles */
phase = PHASE / 360.0; phase = PHASE / 360.0;
if (phase >=0)
phase -= floor(phase);
else
phase -= ceil(phase);
phase = fmod(phase, 1.0);
deltat = phase * PER; deltat = phase * PER;
while (deltat > 0) while (deltat > 0)
deltat -= PER; deltat -= PER;

Loading…
Cancel
Save