Exemplo n.º 1
0
void
avr_cycle_timer_register_usec(
		avr_t * avr,
		uint32_t when,
		avr_cycle_timer_t timer,
		void * param)
{
	avr_cycle_timer_register(avr, avr_usec_to_cycles(avr, when), timer, param);
}
Exemplo n.º 2
0
void ac_input_init(avr_t *avr, ac_input_t *b)
{
	const char * name = ">ac_input";
	b->irq = avr_alloc_irq(&avr->irq_pool, 0, IRQ_AC_COUNT, &name);
	b->avr = avr;
	b->value = 0;
	avr_cycle_timer_register_usec(avr, 100000 / 50, switch_auto, b);
	printf("ac_input_init period %duS or %d cycles\n",
			100000 / 50, avr_usec_to_cycles(avr, 100000 / 50));
}
Exemplo n.º 3
0
static avr_cycle_count_t
switch_auto(struct avr_t * avr,
        avr_cycle_count_t when, void * param)
{
	ac_input_t * b = (ac_input_t *) param;
	b->value = !b->value;
//printf("ac=%d\n", b->value);
	avr_raise_irq(b->irq + IRQ_AC_OUT, b->value);
	return when + avr_usec_to_cycles(avr, 100000 / 50);
}