11 , referenceTime(EmuTime::zero())
12 , periodic(false) , status(false), signalEdge(false)
22 if (signalEdge && !status && newStatus) {
32 listener->
signal(*
this, time);
51 listener->
signal(*
this, time);
63 return ((time - referenceTime) % totalDur) < hiDur;
86 int a = (
begin < referenceTime) ?
88 (
begin - referenceTime) / totalDur;
89 int b = (
end - referenceTime) / totalDur;
99 if (signalEdge != wanted) {
103 EmuTime tmp(referenceTime);
117 void ClockPin::unschedule()
122 void ClockPin::schedule(EmuTime::param time)
124 assert(signalEdge && periodic && listener);
128 void ClockPin::executeUntil(EmuTime::param time)
130 assert(signalEdge && periodic && listener);
133 schedule(time + totalDur);
138 template<
typename Archive>
141 ar.template serializeBase<Schedulable>(*
this);
142 ar.serialize(
"totalDur", totalDur,
144 "referenceTime", referenceTime,
145 "periodic", periodic,
147 "signalEdge", signalEdge);