Lines Matching defs:controller
83 /* Timer Controller information. */
117 struct m68hc11tim *controller)
128 struct m68hc11tim *controller;
130 controller = HW_ZALLOC (me, struct m68hc11tim);
131 set_hw_data (me, controller);
143 controller->clock_prescaler = 1;
144 controller->tcnt_adjust = 0;
147 attach_m68hc11tim_regs (me, controller);
161 struct m68hc11tim *controller;
167 controller = hw_data (me);
178 if (controller->rti_timer_event)
180 hw_event_queue_deschedule (me, controller->rti_timer_event);
181 controller->rti_timer_event = 0;
182 controller->rti_prev_interrupt = 0;
184 if (controller->cop_timer_event)
186 hw_event_queue_deschedule (me, controller->cop_timer_event);
187 controller->cop_timer_event = 0;
188 controller->cop_prev_interrupt = 0;
190 if (controller->tof_timer_event)
192 hw_event_queue_deschedule (me, controller->tof_timer_event);
193 controller->tof_timer_event = 0;
195 if (controller->cmp_timer_event)
197 hw_event_queue_deschedule (me, controller->cmp_timer_event);
198 controller->cmp_timer_event = 0;
214 tcnt = (uint16_t) ((m68hc11_cpu->cpu_absolute_cycle - controller->tcnt_adjust)
215 / controller->clock_prescaler);
249 struct m68hc11tim *controller;
265 controller = hw_data (me);
276 eventp = &controller->cop_timer_event;
277 delay = controller->cop_delay;
278 delay = controller->cop_prev_interrupt + controller->cop_delay;
279 controller->cop_prev_interrupt = delay;
286 eventp = &controller->rti_timer_event;
287 delay = controller->rti_prev_interrupt + controller->rti_delay;
293 controller->rti_prev_interrupt = delay;
294 delay += controller->rti_delay;
302 tcnt_internal = (m68hc11_cpu->cpu_absolute_cycle - controller->tcnt_adjust);
306 tcnt_internal &= 0x0ffff * controller->clock_prescaler;
310 delay = (0x10000 * controller->clock_prescaler) - tcnt_internal;
316 eventp = &controller->tof_timer_event;
327 tcnt_insn_end = (m68hc11_cpu->cpu_absolute_cycle - controller->tcnt_adjust);
331 tcnt_prev = (tcnt_insn_start / controller->clock_prescaler) & 0x0ffff;
334 tcnt = (tcnt_insn_end / controller->clock_prescaler) & 0x0ffff;
339 tcnt_internal &= 0x0ffff * controller->clock_prescaler;
343 delay = 65536 * controller->clock_prescaler;
378 compare = compare * controller->clock_prescaler;
383 + 65536 * controller->clock_prescaler;
395 eventp = &controller->cmp_timer_event;
547 struct m68hc11tim *controller;
554 controller = hw_data (me);
627 m68hc11tim_print_timer (me, "RTI", controller->rti_timer_event);
628 m68hc11tim_print_timer (me, "COP", controller->cop_timer_event);
629 m68hc11tim_print_timer (me, "OVERFLOW", controller->tof_timer_event);
630 m68hc11tim_print_timer (me, "COMPARE", controller->cmp_timer_event);
652 struct m68hc11tim *controller;
663 controller = hw_data (me);
673 val = (uint8_t) ((m68hc11_cpu->cpu_absolute_cycle - controller->tcnt_adjust)
674 / (controller->clock_prescaler * 256));
678 val = (uint8_t) ((m68hc11_cpu->cpu_absolute_cycle - controller->tcnt_adjust)
679 / controller->clock_prescaler);
703 struct m68hc11tim *controller;
717 controller = hw_data (me);
729 adj = ((m68hc11_cpu->cpu_absolute_cycle - controller->tcnt_adjust)
730 / (controller->clock_prescaler * (int64_t) 256)) & 0x0FF;
732 - (adj * controller->clock_prescaler * (int64_t) 256)
733 - ((int64_t) adj * controller->clock_prescaler);
734 controller->tcnt_adjust = adj;
740 adj = ((m68hc11_cpu->cpu_absolute_cycle - controller->tcnt_adjust)
741 / controller->clock_prescaler) & 0x0ff;
743 - ((int64_t) val * controller->clock_prescaler * (int64_t) 256)
744 - (adj * controller->clock_prescaler);
745 controller->tcnt_adjust = adj;
777 controller->clock_prescaler = n;
787 controller->rti_delay = (long) (n) * 8192;