www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Gegentaktsignal 40kHz Mega48


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für einen Ultraschallsender würde ich gerne ein Gegentaktsignal mit 
40kHz erzeugen um 10V differentiellen Spannungshub zu haben.
Ich stehe aber momentan ein bisschen auf der Leitung. Wie kann ich ein 
solches Signal am einfachsten Generieren?
Clear Timer on Compare Match (CTC) Mode sieht ja schonmnal gut aus, aber 
es läuft nicht so wie erwartet...

    TCCR0A = (1<<WGM01) | (1<<COM0A1) | (1<<COM0B0) | (1<<COM0B1);
    TCCR0B = (1<<CS00);  //MCU clock / 1

    OCR0A = 90;

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Clear Timer on Compare Match (CTC) Mode sieht ja schonmnal gut aus, aber
>es läuft nicht so wie erwartet...

Versuch's mal mit dem FastPWM-Mode (Kap. 13.7.3). (oder hast du den 
schon ausgewählt?)
Der kann beide OC-Pins bedienen.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Im Timerinterrupt ein zweites Pin schalten? Oder hardwaremässig mit 
Negator.

MfG Spess

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fast PWM habe ich probiert
mit

    TCCR0A = (1<<WGM00)|(1<<WGM01)|(1<<COM0A1)|(1<<COM0B0)|(1<<COM0B1); 
    TCCR0B = (1<<CS00);

  OCR0A = 128;
  OCR0B = 128;  

habe ich zwar ein Gegentaktsignal, kann die Frequenz aber nicht 
ändern...

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei Timer 1 Fast PWM Mode 14 lässt sich über ICR1 die Frequenz 
einstellen.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timer 1 ist leider schon belegt...
Ich habs mal mit einem Interrupt bei Timerüberlauf probiert, die Routine 
wird aber nie aufgerufen:
ISR(TIMER0_OVF_vect)
{
  TCNT0 = CNT0START;
}

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Problem gelöst, habe sei() aus versehen auskommentiert.
Läuft jetzt Wunderbar!
Danke für die Hilfe!

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.