void setup() {
Serial.begin(9600);
unsigned int reg = 0;
unsigned int reg1 = 0;
unsigned int reg2 = 0;
unsigned int reg3 = 0;
unsigned int reg4 = 0;
// mette un 1 alla posizione indicata nella word da 0 a 7
// il sombolo | or piazza tutti i pesi uscira 10100011
// sono tutte equivalenti
//COM2A1 = 7,COM2B1= 5, WGM21 = 1,WGM20= 0 vedere datasheet atmega 328
TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM21) | _BV(WGM20);// 10100011
reg |= (1<< COM2A1) | (1<< COM2B1) | (1<< WGM21) | (1<< WGM20); // 10100011
reg2 |= (1<< 7) | (1<< 5) | (1<< 1) | (1<< 0); // 10100011
reg1 = 0xA3;// 10100011 in esadecimale
reg3 = _BV(7) | _BV(5) | _BV(1) | _BV(0);//10100011
reg4 |= B00000010 | B00010000 | B10000000| B00000001; //10100011
reg3 &= ~_BV(5); // mette a zero il bi 5 di reg3
reg3 ^=_BV(5);//rimette a 1 il bit 5
//reg3 = 0; Ripulisce tutto il registro quindi diventa 100000011
Serial.print("TCCR2A:\t");Serial.println(TCCR2A, BIN);
Serial.print("reg:\t");Serial.println(reg, BIN);
Serial.print("reg1:\t");Serial.println(reg1, BIN);
Serial.print("reg2:\t");Serial.println(reg2, BIN);
Serial.print("reg3:\t");Serial.println(reg3, BIN);
Serial.print("reg4:\t");Serial.println(reg4, BIN);
if (reg & _BV(5)) {// and bit a bit vede se in reg il bit 5 è a 1 o a 0
Serial.println("UNO");
} else {
Serial.println("ZERO");
}
}
void loop() {
// put your main code here, to run repeatedly:
}