Пример #1
0
int main(void)
{
	system_init();

	//! [setup_init]
	configure_tcc();
	//! [setup_init]

//! [main]
	//! [main_loop]
	while (true) {
		/* Infinite loop */
	}
	//! [main_loop]
//! [main]
}
Пример #2
0
int main(void)
{
	system_init();

//! [setup_init]
	configure_tcc();
	configure_tcc_callbacks();
//! [setup_init]

//! [main]
	//! [enable_global_interrupts]
	system_interrupt_enable_global();
	//! [enable_global_interrupts]

	//! [main_loop]
	while (true) {
	}
	//! [main_loop]
//! [main]
}
//! [setup]
static void configure_tcc(void)
{
	//! [setup_config]
	struct tcc_config config_tcc;
	//! [setup_config]
	//! [setup_config_defaults]
	tcc_get_config_defaults(&config_tcc, CONF_PWM_MODULE);
	//! [setup_config_defaults]

	//! [setup_change_config]
	config_tcc.counter.period = 0x1000;
	config_tcc.compare.channel_function[CONF_TCC_CAPTURE_CHANNEL] =
			TCC_CHANNEL_FUNCTION_CAPTURE;
	config_tcc.compare.wave_generation = TCC_WAVE_GENERATION_SINGLE_SLOPE_PWM;
	config_tcc.compare.wave_polarity[CONF_PWM_CHANNEL] = TCC_WAVE_POLARITY_0;
	config_tcc.compare.match[CONF_PWM_CHANNEL] = compare_values[2];
	//! [setup_change_config]

	//! [setup_change_config_pwm]
	config_tcc.pins.enable_wave_out_pin[CONF_PWM_OUTPUT] = true;
	config_tcc.pins.wave_out_pin[CONF_PWM_OUTPUT]        = CONF_PWM_OUT_PIN;
	config_tcc.pins.wave_out_pin_mux[CONF_PWM_OUTPUT]    = CONF_PWM_OUT_MUX;
	//! [setup_change_config_pwm]

	//! [setup_set_config]
	tcc_init(&tcc_instance, CONF_PWM_MODULE, &config_tcc);
	//! [setup_set_config]

	//! [setup_events]
	struct tcc_events events_tcc = {
		.input_config[0].modify_action = false,
		.input_config[1].modify_action = false,
		.output_config.modify_generation_selection = false,
		.generate_event_on_channel[CONF_PWM_CHANNEL] = true,
		.on_event_perform_channel_action[CONF_TCC_CAPTURE_CHANNEL] = true
	};
	tcc_enable_events(&tcc_instance, &events_tcc);
	//! [setup_events]

	//! [setup_event_sys]
	config_event_for_capture();
	//! [setup_event_sys]

	//! [setup_dma]
	config_dma_for_capture();
	config_dma_for_wave();
	//! [setup_dma]

	//! [setup_enable]
	tcc_enable(&tcc_instance);
	//! [setup_enable]
}
//! [setup]

int main(void)
{
	system_init();

	//! [setup_init]
	configure_tcc();
	//! [setup_init]

//! [main]
	//! [main_loop]
	while (true) {
		/* Infinite loop */
	}
	//! [main_loop]
//! [main]
}