Esempio n. 1
0
void
thread_init()
{
#ifdef USE_OV
    try_ov = ov_init();
#endif
#ifdef USE_MT
    try_mt = mt_init();
#endif
}
Esempio n. 2
0
/**
 * \brief Initialize PIO capture and the OV7740 image sensor.
 *
 * \return 0 on success, 1 otherwise.
 */
static uint32_t capture_init(void)
{
	twi_options_t opt;

	/* Init Vsync handler */
	init_vsync_interrupts();

	/* Init PIO capture */
	pio_capture_init(OV_DATA_BUS_PIO, OV_DATA_BUS_ID);

	/* Turn on OV7740 image sensor using power pin */
	ov_power(true, OV_POWER_PIO, OV_POWER_MASK);

	/* Init PCK0 at 24 Mhz */
	PMC->PMC_PCK[0] = (PMC_PCK_PRES_CLK_4 | PMC_PCK_CSS_PLLA_CLK);
	PMC->PMC_SCER = PMC_SCER_PCK0;
	while (!(PMC->PMC_SCSR & PMC_SCSR_PCK0)) {
	}

	/* Enable TWI peripheral */
	pmc_enable_periph_clk(ID_BOARD_TWI);

	/* Init TWI peripheral */
	opt.master_clk = sysclk_get_cpu_hz();
	opt.speed      = TWI_CLK;
	twi_master_init(BOARD_TWI, &opt);

	/* Configure TWI interrupts */
	NVIC_DisableIRQ(BOARD_TWI_IRQn);
	NVIC_ClearPendingIRQ(BOARD_TWI_IRQn);
	NVIC_SetPriority(BOARD_TWI_IRQn, 0);
	NVIC_EnableIRQ(BOARD_TWI_IRQn);

	/* OV7740 initialization*/
	delay_ms(1000);
	if (ov_init(BOARD_TWI) == 0) {
		/* OV7740 configuration */
		ov_configure(BOARD_TWI, TEST_PATTERN);

		/* Wait 3 seconds to let the image sensor to adapt to the
		 * environment */
		delay_ms(3000);

		return 0;
	} else {
		return 1;
	}
}