Pin automatisch togglen

Gast #1213419
Lesenswert?
• ▲
▼
Hi, ich habe einen ATmega8 hier. Der soll den Pin PB1 selbstständig 
togglen.

Hier ist mein Code:
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3

4
int main()
5
{
6
  DDRB     |= (1 << PB1);     // Pin als Ausgang konfigurieren
7
  TIMSK    |= (1 << OCIE1A);  // Compare Match Interrupt
8
  TCCR1A   |= (1 << WGM11);   // CTC-Modus
9
  TCCR1B   |= (1 << CS10);    // Vorteiler: 8
10
  OCR1A     = 17;             // Alle 16µs ein Interrupt
11
        while(1) { }
12
}

Wo liegt der Fehler?
Gast #1213427
Lesenswert?
• ▲
▼
Ok. Habe es angepasst. Jetzt funktioniert es. Hier der Code:
1
DDRB   = (1<<PB0);
2
OCR1A  = (F_CPU + FREQ) / (FREQ * 2); // Frequenz korrekt runden
3
TCCR1A = (1 << COM1A0);               // OC1A togglen
4
TCCR1B = (1 << CS10) | (1 << WGM12);  // Vorteiler: 1, CTC-Modus

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.