спасибо. сделал так :
Код
#define INPUT1 PORTD,2,0
#define INPUT2 PORTD,3,1
#define INPUT3 PORTD,4,2
#define INPUT4 PORTD,5,3
#define _M_SCAN_INPUT(port, pin, pos, loc) \
loc |= ( ((port >> pin) & 0x01) << pos)
#define M_SCAN_INPUT(INPUT, loc) _M_SCAN_INPUT(INPUT, loc)
вызываю
Код
M_SCAN_INPUT(INPUT1, pin_state_cur);
M_SCAN_INPUT(INPUT2, pin_state_cur);
M_SCAN_INPUT(INPUT3, pin_state_cur);
M_SCAN_INPUT(INPUT4, pin_state_cur);