// ------------------------------------------------------------------//// TRAIN01A and TRAN02A MLAB Module Hardware Definition//// (c) miho WWW.MLAB.CZ/PermaLink/TRAIN//// ------------------------------------------------------------------// Timer#define F_CPU 8000000UL // Internal RC Oscillator 8MHz// Input bits port definitions#define SW_PORT_0 C // Port PC5#define SW_DATA_0 5#define SW_PORT_1 C // Port PC4#define SW_DATA_1 4#define SW_PORT_2 C // Port PC3#define SW_DATA_2 3#define SW_PORT_3 C // Port PC2#define SW_DATA_3 2#define SW_PORT_4 C // Port PC1#define SW_DATA_4 1#define SW_PORT_5 C // Port PC0#define SW_DATA_5 0#define SW_PORT_6 B // Port PB5#define SW_DATA_6 5#define SW_PORT_7 B // Port PB2#define SW_DATA_7 2// Output bits port definitions#define RE_PORT_0 B // Port PB1#define RE_DATA_0 1#define RE_PORT_1 B // Port PB0#define RE_DATA_1 0#define RE_PORT_2 D // Port PD7#define RE_DATA_2 7#define RE_PORT_3 D // Port PD6#define RE_DATA_3 6#define RE_PORT_4 D // Port PD5#define RE_DATA_4 5#define RE_PORT_5 D // Port PD4#define RE_DATA_5 4#define RE_PORT_6 D // Port PD3#define RE_DATA_6 3#define RE_PORT_7 D // Port PD2#define RE_DATA_7 2//--------------------------------------------------------// Macros#define GLUE(a,b) a##b#define PORT(a) GLUE(PORT,a)#define PIN(a) GLUE(PIN,a)#define DDR(a) GLUE(DDR,a)// Output port tables - DDRvolatile uint8_t * RE_DDR_Table[8] ={&DDR(RE_PORT_0),&DDR(RE_PORT_1),&DDR(RE_PORT_2),&DDR(RE_PORT_3),&DDR(RE_PORT_4),&DDR(RE_PORT_5),&DDR(RE_PORT_6),&DDR(RE_PORT_7)};// Output port tables - PORTvolatile uint8_t * RE_PORT_Table[8] ={&PORT(RE_PORT_0),&PORT(RE_PORT_1),&PORT(RE_PORT_2),&PORT(RE_PORT_3),&PORT(RE_PORT_4),&PORT(RE_PORT_5),&PORT(RE_PORT_6),&PORT(RE_PORT_7)};// Output port tables - MASKunsigned char RE_BIT_MASK[8] ={1<<RE_DATA_0,1<<RE_DATA_1,1<<RE_DATA_2,1<<RE_DATA_3,1<<RE_DATA_4,1<<RE_DATA_5,1<<RE_DATA_6,1<<RE_DATA_7};// Input port tables - PORTvolatile uint8_t * SW_PORT_Table[8] ={&PORT(SW_PORT_0),&PORT(SW_PORT_1),&PORT(SW_PORT_2),&PORT(SW_PORT_3),&PORT(SW_PORT_4),&PORT(SW_PORT_5),&PORT(SW_PORT_6),&PORT(SW_PORT_7)};// Input port tables - PINvolatile uint8_t * SW_PIN_Table[8] ={&PIN(SW_PORT_0),&PIN(SW_PORT_1),&PIN(SW_PORT_2),&PIN(SW_PORT_3),&PIN(SW_PORT_4),&PIN(SW_PORT_5),&PIN(SW_PORT_6),&PIN(SW_PORT_7)};// Input port tables - MASKunsigned char SW_BIT_MASK[8] ={1<<SW_DATA_0,1<<SW_DATA_1,1<<SW_DATA_2,1<<SW_DATA_3,1<<SW_DATA_4,1<<SW_DATA_5,1<<SW_DATA_6,1<<SW_DATA_7};