Controllare stato dei pin

quindi ancora più semplice! bene, bene, ci pensi tu allora?
[/quote]

boolean whatWritten(int pin) {
	uint8_t bit = digitalPinToBitMask(pin);
	uint8_t port = digitalPinToPort(pin);

	return *portInputRegister(port) & bit;
}

per ora sono arrivato a questo, i fase di test in quanto sembra funzionare ma non mi pare fare lo shift del bit ad esempio

boolean whatWritten(int pin) {
	uint8_t bit = digitalPinToBitMask(pin);
	uint8_t port = digitalPinToPort(pin);

	return *portInputRegister(port) & bit;
}

void setup() {
  Serial.begin(9600);
  pinMode(5, OUTPUT);
  
  Serial.println(whatWritten(5));
  
  digitalWrite(5, HIGH);
  Serial.println(whatWritten(5));
  
  digitalWrite(5, LOW);
  Serial.println(whatWritten(5));
}

void loop() { };

in seriale printa

0
32
0