Eingang/Ausgang toggeln

Gast #837026
Lesenswert?

ich möchte ein Signal mit einer Frequenz modulieren und wollte da 
einfach den Pin, auf dem das Signal ausgegeben wird, einmal als Ausgang 
und dann iweder als Eingang schlaten um das Signal zu "zerhacken".

Ist dies z.B. mit DDRD^=(1<<PD5) in ener Anweisung möglich oder sollte 
man doch dieber eine Hilfsvariable nehmen, diese toggeln und if Abfrage 
für Eingang/Ausgang??
Gast #837200
Lesenswert?

genau so sieht es aus, aber es gibt auch Fernbedienungen mit 38kHz. Die 
UND-Verknüpfung von Signal und 38kHz ist im Prinzip eine "Zerhackung" 
des Signals mit 38kHz, also Ausgangspin abwechselnd als Eingang/Ausgang 
schalten.
>Ist dies z.B. mit DDRD^=(1<<PD5) in einer Anweisung möglich!!!
Gast #837214
Lesenswert?

Ja, sollte gehen.
Probier es doch aus und lass es durch den Sim laufen...

Aber warum änderts du nicht einfach das PORT Register? Wenn du das Teil 
auf "Eingang" schaltest, ist er hochohmig und schwebt ohne Pullup 
irgendwo in der Luft...
Schalte doch einfach den Ausgang...
PORTD^=(1<<5);
Gast #837230
Lesenswert?

>Aber warum änderts du nicht einfach das PORT Register?
mit dem PORT Register will ich das Signal generieren und mit DDRx die 
38kHz Modulation
eben an/aus:
PORTD |= (1 << PD5);
PORTD &= ~(1<<PD5);
bzw. PORTD ^= ( 1 << PD5 );
Ich hab im Prinzip 2 Compare Matches (A und B) - eines läuft auf 2*38kHz 
und das andere auf 889µs. Die 2*38kHz sind für die Modulation und die 
889µs für das RC5-Signal (ein Bit bei RC5 ist genau 2*889µs lang).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren