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
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.
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 ...
Kann mir bitte jemand helfen ? Ich hab versucht das umzusetzen aber bekomme keinen wert mehr ausgegeben. Vielen lieben dank
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.
Ist denn der Rest vom Aufbau her so ok ? Entweder nehme ich den Wert falsch aus meiner Funktion oder mache dann sonst was falsch da mein Atmega8 solbald die Messfunktion aufgerufen wird aussteigt.... MFG
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.