byte A;
byte B;
void setup()
{
pinMode(8, OUTPUT);
A=DDRB;
B=PORTB;
Serial.begin(9600);
Serial.print(" A = DDRB = "); Serial.println(A, BIN);
Serial.print(" PORTB = "); Serial.println(PORTB, BIN);
digitalWrite(8, HIGH);
Serial.println(" B0 = HIGH:");
Serial.println();
Serial.print(" DDRB = "); Serial.println(DDRB, BIN);
Serial.print(" DDRB un bit per volta = ");
for(int i=7; i>=0; i--)
{
Serial.print(bitRead(A,i));
}
Serial.println(); Serial.println();
Serial.print(" PORTB = "); Serial.println(PORTB, BIN);
Serial.print("PORTB un bit per volta = ");
B=PORTB;
for(int i=7; i>=0; i--)
{
Serial.print(bitRead(B,i));
}
Serial.println();
Serial.print(" PINB = "); Serial.println(PINB, BIN);
}
void loop()
{
}
A = DDRB = 1
PORTB = 0
B0 = HIGH:
DDRB = 1
DDRB un bit per volta = 00000001
PORTB = 1
PORTB un bit per volta = 00000001
PINB = 100001
Come detto ieri, PIN legge tutta la porta, mentre PORT legge solo i bit che sono stati impostati come uscita.
P.S.: i bit sono numerati da destra verso sinistra!