axes = []
axes_text = []
- for i in range(5):
- axes.append(ax.plot([], [])[0])
-
font = dict(fontsize = 14, family = 'monospace')
axes_text.append(plt.text(0, 11700, '', **font))
axes_text.append(plt.text(800, 10500, '', **font))
axes_text.append(plt.text(1500, 11700, '', **font))
+ for i in range(5):
+ axes.append(ax.plot([], [])[0])
+ axes_text[i].set_color(axes[i].get_color())
+
plot.update_text(axes_text, 0, [0] * 4)
anim = animation.FuncAnimation(fig, plot.update, fargs = [axes, axes_text],
ISR(PORTC_INT0_vect) {reset = 32;}
-void channel_init(int i) {
- uint8_t step_pin = channel[i].step_pin;
- uint8_t dir_pin = channel[i].dir_pin;
-
- // Configure I/O
- DIRCLR_PIN(step_pin);
- DIRCLR_PIN(dir_pin);
- PINCTRL_PIN(step_pin) = PORT_SRLEN_bm | PORT_ISC_BOTHEDGES_gc;
- PINCTRL_PIN(dir_pin) = PORT_SRLEN_bm | PORT_ISC_BOTHEDGES_gc;
-
- // Dir change interrupt
- PIN_PORT(dir_pin)->INTCTRL |= PORT_INT0LVL_MED_gc;
- PIN_PORT(dir_pin)->INT0MASK |= PIN_BM(dir_pin);
-
- // Events
- EVSYS_CHMUX(i) = PIN_EVSYS_CHMUX(step_pin);
- EVSYS_CHCTRL(i) = EVSYS_DIGFILT_8SAMPLES_gc;
-
- // Clock
- channel[i].timer->CTRLA = TC_CLKSEL_EVCH0_gc + i;
- channel[i].timer->INTCTRLA = TC_OVFINTLVL_HI_gc;
-
- // Set initial clock direction
- channel_update_dir(i);
-}
-
-
ISR(TCC1_OVF_vect) {
if (reset) reset--;
}
+void channel_init(int i) {
+ uint8_t step_pin = channel[i].step_pin;
+ uint8_t dir_pin = channel[i].dir_pin;
+
+ // Configure I/O
+ DIRCLR_PIN(step_pin);
+ DIRCLR_PIN(dir_pin);
+ PINCTRL_PIN(step_pin) = PORT_SRLEN_bm | PORT_ISC_BOTHEDGES_gc;
+ PINCTRL_PIN(dir_pin) = PORT_SRLEN_bm | PORT_ISC_BOTHEDGES_gc;
+
+ // Dir change interrupt
+ PIN_PORT(dir_pin)->INTCTRL |= PORT_INT0LVL_MED_gc;
+ PIN_PORT(dir_pin)->INT0MASK |= PIN_BM(dir_pin);
+
+ // Events
+ EVSYS_CHMUX(i) = PIN_EVSYS_CHMUX(step_pin);
+ EVSYS_CHCTRL(i) = EVSYS_DIGFILT_8SAMPLES_gc;
+
+ // Clock
+ channel[i].timer->CTRLA = TC_CLKSEL_EVCH0_gc + i;
+ channel[i].timer->INTCTRLA = TC_OVFINTLVL_HI_gc;
+
+ // Set initial clock direction
+ channel_update_dir(i);
+}
+
+
static void init() {
cli();