so with pin1_set you meant pin1 = HIGH and with pin1_clear you meant pin1 = LOW ?
What about pin input then?
I tried to reproduce a blink example with your code but it didnt work… Do you know why?
volatile uint32_t *pin1_io_port, *pin2_io_port;
uint16_t pin1_bitmask, pin2_bitmask;
#define PIN1 PB1
#define PIN2 PA2
#define pin1_set (*pin1_io_port = pin1_bitmask)
#define pin1_clear (*pin1_io_port = (pin1_bitmask<<16))
#define pin2_set (*pin2_io_port = pin2_bitmask)
#define pin2_clear (*pin2_io_port = (pin2_bitmask<<16))
void setup(void) {
pin1_io_port = portSetRegister(PIN1);
pin2_io_port = portSetRegister(PIN2);
pin1_bitmask = digitalPinToBitMask(PIN1);
pin2_bitmask = digitalPinToBitMask(PIN2);
}
void loop(void) {
pin1_set;
delay(1000);
pin1_clear;
delay(1000);
}