staticstruct
ac_module ac_instance;
#define AC_COMPARATOR_CHANNEL AC_CHAN_CHANNEL_0
voidconfigure_ac(
void)
{
struct
ac_config config_ac;
ac_get_config_defaults(&config_ac);
ac_init(&ac_instance, AC, &config_ac);
voidconfigure_ac_channel(
void)
{
struct
ac_chan_config config_ac_chan;
ac_chan_get_config_defaults(&config_ac_chan);
config_ac_chan.sample_mode = AC_CHAN_MODE_SINGLE_SHOT;
config_ac_chan.positive_input = AC_CHAN_POS_MUX_PIN0;
config_ac_chan.negative_input = AC_CHAN_NEG_MUX_SCALED_VCC;
config_ac_chan.vcc_scale_factor = 32;
config_ac_chan.interrupt_selection = AC_CHAN_INTERRUPT_SELECTION_END_OF_COMPARE;
struct
system_pinmux_config ac0_pin_conf;
system_pinmux_get_config_defaults(&ac0_pin_conf);
ac0_pin_conf.direction = SYSTEM_PINMUX_PIN_DIR_INPUT;
ac0_pin_conf.mux_position = CONF_AC_MUX;
system_pinmux_pin_set_config(CONF_AC_PIN, &ac0_pin_conf);
ac_chan_set_config(&ac_instance, AC_COMPARATOR_CHANNEL, &config_ac_chan);
ac_chan_enable(&ac_instance, AC_COMPARATOR_CHANNEL);
voidcallback_function_ac(
structac_module *
constmodule_inst)
{
callback_status =
true;
}
boolvolatile
callback_status =
false;
callback_status =
true;
voidconfigure_ac_callback(
void)
{
ac_register_callback(&ac_instance, callback_function_ac, AC_CALLBACK_COMPARATOR_0);
ac_enable_callback(&ac_instance, AC_CALLBACK_COMPARATOR_0);
}
ac_register_callback(&ac_instance, callback_function_ac, AC_CALLBACK_COMPARATOR_0);
ac_enable_callback(&ac_instance, AC_CALLBACK_COMPARATOR_0);
ac_enable(&ac_instance);