Forum: Mikrocontroller und Digitale Elektronik Gegentaktsignal 40kHz Mega48


von Stefan (Gast)


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...
1
    TCCR0A = (1<<WGM01) | (1<<COM0A1) | (1<<COM0B0) | (1<<COM0B1);
2
    TCCR0B = (1<<CS00);  //MCU clock / 1
3
4
    OCR0A = 90;

von STK500-Besitzer (Gast)


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.

von Spess53 (Gast)


Lesenswert?

Hi

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

MfG Spess

von Stefan (Gast)


Lesenswert?

Fast PWM habe ich probiert
mit
1
    TCCR0A = (1<<WGM00)|(1<<WGM01)|(1<<COM0A1)|(1<<COM0B0)|(1<<COM0B1); 
2
    TCCR0B = (1<<CS00);
3
4
  OCR0A = 128;
5
  OCR0B = 128;

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

von Andreas K. (a-k)


Lesenswert?

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

von Stefan (Gast)


Lesenswert?

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

von Lukas (Gast)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.