www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 36khz Träger mit Timer0 erzeugen


Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich hoffe ihr könnt mir bei meinem Problem helfen.
Und zwar versuche ich gerade eine 36kHz Trägerfrequenz für eine Uart 
über IR Brücke zu erzeugen.

Mein Problem ist das ich einfach die Timer nicht verstehe.

Als MCU nutze ich einen Attiny2313.Ich würde gerne den 8Bit Timer0 
nutzen da ich den 16Bit Timer für eine Software UART nutze.

Könnt ihr mir sagen ob dieser Timer dazu geeignet ist und mir eventuell 
nen Anstoss geben wie ich es am besten mache?

MfG


Flo

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Könnt ihr mir sagen ob dieser Timer dazu geeignet ist und mir eventuell
>nen Anstoss geben wie ich es am besten mache?

Timer in den CTC-Modus versetzen und das Top-Register entsprechend 
laden. Fertig. Mit welcher Frequenz läuft dein AVR?

MfG Spess

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Tiny läuft mit 4MHz.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
36kHz bedeuten eine Periodendauer von ~28µs.
Was bei einem symmetrischen Signal eine Pulsdauer von 14µs bedeutet.
Wie weit muß eine Timer zählen, der mit 4MHz betrieben wird?

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal gegoogelt und das gefunden:

// setup waveform generation to 36kHz on timer 0
TCCR0A |= _BV(WGM01); // clear timer on compare match
TCCR0B |= _BV(CS00); // timer source is system clock
OCR0A = 107; // output compare value for 36kHz @ 8 MHz

// output compare pin to output mode, low level
DDRB |= _BV(PB2); // port PB2 as output
PORTB &= ~_BV(PB2); // PB2 is low

Kommt das so hin?Toggelt der automatisch?

Und zu guter letzt:Wie berechne ich OCR0A für 4 MHz?

MfG

Flo

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kommt das so hin?Toggelt der automatisch?

Vergleich es doch mal mit dem Datenblatt.

>Wie berechne ich OCR0A für 4 MHz?

Indem du das von 8Mhz durch zwei teilst.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Timer Mode2:            TCCR0A    : WGM01=1
Toggle on Compare Match TCCR0A    : COM0A0=1
Teiler 1                TCCR0B    : CS00=1
OCR0A = $37

OC0A Ausgang            DDRB.2=H

MfG Spess

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VIELEN DANK.
Habe nun endlich verstanden wie ich die ganzen Einstellungen verstehen 
muss.
 Nur die Bestimmung von 0CR0A versteh ich nicht aber das bekomme ich 
auch noch hinter.

Vielen Dank nochmal

MfG Flo

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

> Nur die Bestimmung von 0CR0A versteh ich nicht aber das bekomme ich
>auch noch hinter.

Steht doch im Datenblatt.

MfG Spess

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo habs gerade gefunden :-D

Danke nochmal.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.