void TC0_IrqHandler(void) { // acknowledge interrupt tc_channel_interrupt_ack(&ENCODER_TC_CHANNEL); if(led_is_on(LED_STD_RED)) { led_off(LED_STD_RED); } else { led_on(LED_STD_RED); } uint8_t encoder_value = PIO_Get(&pin_encoder_a); encoder_value |= (PIO_Get(&pin_encoder_b) << 1); int8_t add = encoder_table[encoder_value_last][encoder_value]; encoder_count += add; encoder_count_external += add; encoder_value_last = encoder_value; }
int led_is_off(lednum) { return !led_is_on(lednum); }