LED PWM funktionniert nicht!

OP (Firma: Student) #2857871
Lesenswert?

Hallo,
ich versuche gerade eine LED durch die Timer zu steuern (PWM). ich 
verwende AVR Studio 5.1 und der uC Atmega2560. ich habe den folgenden 
Code geschrieben. Er funktionniert aber nicht. weiß Jemand warum?

MfG
Christian
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
#include <util/delay.h>
4

5
#define F_CPU 8000000UL // 8 MHz
6

7
#define LED_PORT  PORTB
8
#define LED_DDR    DDRB
9
#define LED_PIN    PINB
10

11
#define PWM_LED    PB2
12

13
ISR(TIMER1_COMPA_vect){
14
  
15
  LED_PORT |= (1<<PWM_LED);
16
  
17
}
18

19
ISR(TIMER1_COMPB_vect){
20
  
21
  LED_PORT &= ~(1<<PWM_LED);
22
  
23
}
24

25
int main(void)
26
{
27
  //Timer1 Config
28
  //Clear OCnA/OCnB on compare match
29
  //Fast PWM: Top = OCR1A (siehe Table 17-2, uC Atmega2560, Seite 148)
30
  TCCR1A |= (1<<COM1A1)|(1<<COM1B1)|(1<<WGM11)|(WGM10);
31
  //No prescaling
32
  TCCR1B |= (1<<WGM13)|(1<<WGM12)|(1<<CS12);
33
  TCNT1 = 0;
34
  OCR1A = 0xFFFF;
35
  OCR1B = 0x7FFF;
36
  TIMSK1 |= (1<<OCIE1B)|(1<<OCIE1A);
37
  
38
  LED_DDR |= (1<<PWM_LED);  //Alle Ausgänge
39
  LED_PORT = 0xff;
40
  
41
  sei();
42
  
43
    while(1)
44
    {
45
    }
46
}

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