PWM mit AT90CAN128 und 16bit Timer1

Gast #3580089
Lesenswert?
• ▲
▼
Hallo,
ich bin leider nicht sehr bewandert in der C-Programierung von 
Mikrocontrollern und habe das Problem, dass ich auf dem AVR AT90CAN128 
eine einfache PWM erzeugen möchte, die erstmal nur eine LED aufleuchten 
lassen soll um zu sehen wie es funktioniert. Ich hab die Dokumentation 
zu dem Controller rauf und runter gelesen, bin aber nicht auf die 
Antwort gekommen. Mein Problem ist konkret, dass ich den Wert im 
Register OCR1A in einer ISR erhöhen möchte um die 1 Phase zu verlängern 
und die LED heller werden zu lassen, doch es geht einfach nicht. Bis 
jetzt sieht mein Programm so aus:
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3

4
void init(){  
5
  
6
TCCR1B = (0<<WGM12) | (1<<WGM13) | //Waveform Generation Mode
7
   (0<<CS12) | (1<<CS11) | (0<<CS10); //Prescaler
8
TCCR1A = (1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<COM1C1) | (0<<COM1C0) | //Compare Output Mode Phase Correct PWM
9
(0<<WGM11) | (0<<WGM10); //Waveform Generation Mode Bits
10
  
11
OCR1A = 0;
12
ICR1 = 8192;
13
TIMSK1 = (1<<OCIE1A);
14
sei();
15

16
//für PWM
17
DDRB |= (1<<PB5);
18
}
19

20
ISR(TIMER1_COMPA_vect){
21
       OCR1A++;
22
}
23

24
int main(void){
25
     init();
26
     while(1){}
27
}

Würde mich freuen, wen mir jemand erklären kann warum das nicht 
funktioniert und wie es funktioniert :)
LG

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.