Teacup_Firmware/mendel/pinout.h

81 lines
1.4 KiB
C

#ifndef _PINOUT_H
#define _PINOUT_H
#include "arduino.h"
#ifndef MASK
#define MASK(PIN) (1 << PIN)
#endif
#define _PIN(P) #P
#define READ(IO) (RPORT_ ## IO & MASK(PIN_ ## IO))
#define WRITE(IO, v) if (v) { WPORT_ ## IO |= MASK(PIN_ ## IO); } else { WPORT_ ## IO &= ~MASK(PIN_ ## IO); }
#define SET_INPUT(IO) (DDR_ ## IO |= MASK(PIN_ ## IO))
#define SET_OUTPUT(IO) (DDR_ ## IO &= ~MASK(PIN ## IO))
// #define X_STEP_PIN DIO0
// #define X_DIR_PIN DIO1
// #define X_MIN_MIN DIO2
// #define X_MAX_PIN DIO3
// #define Y_STEP_PIN DIO4
// #define Y_DIR_PIN DIO5
// #define Y_MIN_MIN DIO6
// #define Y_MAX_PIN DIO7
// #define Z_STEP_PIN DIO8
// #define Z_DIR_PIN DIO9
// #define Z_MIN_MIN DIO10
// #define Z_MAX_PIN DIO11
// #define E_STEP_PIN DIO12
// #define E_DIR_PIN DIO13
void x_step(void);
void y_step(void);
void z_step(void);
void e_step(void);
inline void x_direction(uint8_t dir) {
WRITE(DIO1, dir);
}
inline uint8_t x_min(void) {
return READ(DIO2);
}
inline uint8_t x_max(void) {
return READ(DIO3);
}
inline void y_direction(uint8_t dir) {
WRITE(DIO5, dir);
}
inline uint8_t y_min(void) {
return READ(DIO6);
}
inline uint8_t y_max(void) {
return READ(DIO7);
}
inline void z_direction(uint8_t dir) {
WRITE(DIO9, dir);
}
inline uint8_t z_min(void) {
return READ(DIO10);
}
inline uint8_t z_max(void) {
return READ(DIO11);
}
inline void e_direction(uint8_t dir) {
WRITE(DIO13, dir);
}
#endif /* _PINOUT_H */