Timer Zeitmessung für Entfernungsmessung Ultraschall ATMEGA 8

OP #2730297
Lesenswert?

Hallo,
ich möchte mittels eines Ultraschallboards eine Entfernungsmesseung
machen. Dazu habe ich eine Schaltung die ein Ultraschallimpuls sendet 
sobald Sie 0V (Low Signal) hat. Der Ausgang dazu soll PD 6 sein.
Der Echo Eingang soll PD7 sind und wechselt von 5V auf 0V sobald das 
Signal empfangen wurde.

Die Schaltung habe ich gestetet und Funktioniert soweit sehr exakt.

Meine Frage nun her ob ich irgendwo einen denkfehler in meinem Code habe 
oder nicht.

Ich möchte mit dem PD6 mein Signal senden, warte durch eine Schleife 
eine kurze Zeit ab (Nachschwingen Ultraschallsender). Timer Starten und 
ihn mit PD7 wieder stoppen sobald das Signal empfangen wurde.
Timerinhalt in eine Variable kopieren mit der ich arbeiten kann....

C Code ist angehängt.

P.s. habe den Code um das unwesendliche gekürzt und bitte 
nichterschlagen bin noch anfänger.

Vielen Dank für eure Hilfe
Angehängte Dateien:
#2730309
Lesenswert?

Du hast einen Denkfehler. ;-)
Man triggert den Ausgang. Sobald der Echo Pin auf high geht faengt man 
die Messung erst an und ermittelt dann, wie lange das Signal unterwegs 
ist. Du misst also im Moment nix, da du nach dem triggern deine Messung 
beginnst.
Hab ich auch falsch gemacht beim ersten mal.
OP #2730316
Lesenswert?

Stephan K. schrieb:
> nach dem triggern deine Messung
>
> beginnst.

Also setzte ich den Ausgang(PD6) auf Low, Trigger das nachschwingen des 
Senders, Starte den Timer und warte auf das Low im Eingang (PD7) um den 
Timer zu Stoppen?

Falls ich dich noch immer falsch verstanden habe kannst du mir kurz ein 
Beispiel geben? mein Kopf ist momentan leider nicht mehr ganz da... ;-)

Danke aber schon mal ...
Gast #2730604
Lesenswert?

1
for (i=0; i<x; i++)                    // Ein Durchgang er Schleife dauert bei 8Mhz 0,75us also 200,25us
2
    asm volatile("nop");           // Warte einen Prozessortakt
Das lieber ganz in Assembler machen, da ein anderer Compiler, dass 
anders übersetzen könnte.

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