fast PWM mit c

Gast #2222187
Lesenswert?

Hey!
Hab folgenden Programcode:
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3

4
int main(void){
5
  DDRB = DDRB | (1<<PB1);
6
  
7
  // Clear OC1A on Compare Match, set OC1A at Bottom
8
  TCCR1A = TCCR1A | (1<<COM1A1);
9
  // Fast PWM: TOP = OCR1A
10
  TCCR1A = TCCR1A | (1<<WGM10) | (1<<WGM11);
11
  TCCR1B = TCCR1B | (1<<WGM12) | (1<<WGM13);
12
  // selected clock: prescaler 1024
13
  TCCR1B = TCCR1B | (1<<CS12) | (1<<CS10);
14
  // Set TOP = OCR1A
15
  OCR1A = 0x0000;    //0xFFFF, 0x7FFF auch schon probiert --> immer das gleiche
16
  // Enable Timer/Counter1 Output Compare match interrupt
17
  TIMSK = TIMSK | (1<<OCIE1A);
18
 
19
   sei();
20
   while(1){}
21
  return 0;
22
}
Möchte eine Led mithilfe von PWM dimmen... Erklärungen habe ich mithilfe 
von Kommentaren eingefügt!
Wenn ich das Program laufen lasse leuchtet die LED immer gleich hell! 
auch wenn ich in OCR1A 0x0000 schreibe, wonach die LED meiner meinung 
nach überhaupt nicht leuchten dürfte!?
Die LED habe ich übrigens an die masse geschalten! dh. wenn 5V an PB1 
anliegen muss die Led leuchten...

Ich hoffe ihr könnt mir helfen!
Danke

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren