int main(void) { system_init(); //! [setup_init] configure_tcc(); //! [setup_init] //! [main] //! [main_loop] while (true) { /* Infinite loop */ } //! [main_loop] //! [main] }
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] }