void setup() {
Serial.begin(9600);
Serial.print("TCCR1A:\t");Serial.println(TCCR1A, BIN);
Serial.print("TCCR1B:\t");Serial.println(TCCR1B, BIN);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
cli(); //disabilita interrupt
//Uso il timer 1 da 16 bit - lo resetto 2^16=65536
TCCR1A = 0;
TCCR1B = 0;
TCCR1A = _BV(COM1A1) | _BV(COM1B1) | _BV(WGM11) | _BV(WGM10);
// WGN11 e WGM10 a 1 settano la modalita fast PWM
//COM1A1 E COM1B1 collegano le 2 uscite OC1A e OC1B del contatore al pin 9 e pin 3
TCCR1B = _BV(CS11); // 8 -> 16000000 / 8 / 65536 = 30 Hz
//TCCR1B = _BV(CS11)|_BV(CS10); //64 -> 16000000 / 64 / 65536 = 3,8 hz Hz
//TCCR1B = _BV(CS12); // 256 -> 16000000 / 256 / 65536 = 0,95 Hz
//TCCR1B = _BV(CS12) | _BV(CS10); //1024 -> 16000000 / 1024 / 65536
// con il timer 1 le frequnze sono molto basse.
OCR1A = 50;// pin 9
OCR1B = 30;// pin 10
// OCR1A e OCR1B VARIANO IL DUTY CICLE
// per variare frequanza variare il prescaler. fuscita= fclock/(N*65536), fclock =16Mhz
// N fattore di prescaler cioè (8,64,256,1024)
sei(); //abilita interrupt
Serial.print("TCCR1A:\t");Serial.println(TCCR1A, BIN);
Serial.print("TCCR1B:\t");Serial.println(TCCR1B, BIN);
}
void loop() {}