--- /dev/null
+void setup() {
+ pinMode(13, OUTPUT);
+ noInterrupts(); //cli(); // Stop reception of interrupts
+
+ // Set PB1 to be an output (Pin9 Arduino UNO)
+ DDRB |= (1 << PB1);
+ // Clear Timer/Counter Control Registers
+ TCCR1A = 0;
+ TCCR1B = 0;
+ TIMSK1 = 0;
+ // Set non-inverting mode - Table 15-3 (page 108)
+ TCCR1A |= (1 << COM1A1);
+ // Set Fast-PWM Mode (Mode 14) - Table 15-5 (page 109)
+ TCCR1A |= (1 << WGM11);
+ TCCR1B |= (1 << WGM12);
+ TCCR1B |= (1 << WGM13);
+ // Clear Timer 1 Counter
+ TCNT1 = 0;
+ // Set PWM frequency/top value - Output PWM 10kHz
+ ICR1 = 199;
+ OCR1A = 180;
+ // Enable compare match interrupt
+ TIMSK1 |= (1 << OCIE1A);
+ TIMSK1 |= (1 << TOIE1);
+ // Set prescaler to 8 and starts PWM
+ TCCR1B |= (1 << CS11);
+
+ interrupts(); //sei();
+}
+
+void loop() {
+ // Empty
+}
+
+//Timer1 Compare Match Interrupt turns OFF pin 13 (LED)
+ISR(TIMER1_COMPA_vect) {
+ digitalWrite(13, LOW);
+}
+
+//Timer1 Overflow Interrupt turns ON pin 13 (LED)
+ISR(TIMER1_OVF_vect) {
+ digitalWrite(13, HIGH);
+}
+++ /dev/null
-void setup() {
- pinMode(13, OUTPUT);
- noInterrupts(); //cli(); // Stop reception of interrupts
-
- // Set PB1 to be an output (Pin9 Arduino UNO)
- DDRB |= (1 << PB1);
- // Clear Timer/Counter Control Registers
- TCCR1A = 0;
- TCCR1B = 0;
- TIMSK1 = 0;
- // Set non-inverting mode - Table 15-3 (page 108)
- TCCR1A |= (1 << COM1A1);
- // Set Fast-PWM Mode (Mode 14) - Table 15-5 (page 109)
- TCCR1A |= (1 << WGM11);
- TCCR1B |= (1 << WGM12);
- TCCR1B |= (1 << WGM13);
- // Clear Timer 1 Counter
- TCNT1 = 0;
- // Set PWM frequency/top value - Output PWM 10kHz
- ICR1 = 199;
- OCR1A = 180;
- // Enable compare match interrupt
- TIMSK1 |= (1 << OCIE1A);
- TIMSK1 |= (1 << TOIE1);
- // Set prescaler to 8 and starts PWM
- TCCR1B |= (1 << CS11);
-
- interrupts(); //sei();
-}
-
-void loop() {
- // Empty
-}
-
-//Timer1 Compare Match Interrupt turns OFF pin 13 (LED)
-ISR(TIMER1_COMPA_vect) {
- digitalWrite(13, LOW);
-}
-
-//Timer1 Overflow Interrupt turns ON pin 13 (LED)
-ISR(TIMER1_OVF_vect) {
- digitalWrite(13, HIGH);
-}