mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zeitverzögerung messen


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kann ich am besten die Zeitmessen die vergeht wenn ich eine
Echolotschaltung aktiviere und diese mir, entsprechend der Entfernung
zu einem Hindernis und damit die Zeitverzögerung, auf PIN PD.5 ein
einfaches TTL-Signal zurückliefert.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zähler beim Absetzen des Impulses starten und beim Eintreffen der
Antwort/des Echos wieder anhalten. Zähler läuft frei mit einer Dir
bekannten und ausreichend hohen, aber nicht zu hohen Frequenz (nicht zu
hoch wg. Zählerüberlauf).

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Zähler beim Absetzen des Impulses starten

soweit kein Problem

>und beim Eintreffen der Antwort/des Echos wieder anhalten.

Da habe ich mein Problem da man auf PD.5 (AT90S2313) keinen Interrupt
auslösen kann bzw. der Capture Pin PD.6(ICP) ist.

Autor: Jens123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kannst du das programm so lannge anhalten, bis die messung zu ende
ist??
wenn ja:

while(PD6 == 1);
time = counter;

Autor: Jens123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch was vergessen...

sollten die zeiten etwas laennger dauern musst du in der TOV Interrupt
routione dann eine variable immer eins hoch setzen ;)

und unten das ganze addieren...

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Da habe ich mein Problem da man auf PD.5 (AT90S2313) keinen Interrupt
auslösen kann bzw. der Capture Pin PD.6(ICP) ist."


Wäre es nicht sinnvoller, erst über die benötigten Funktionen
nachzudenken und dann den Schaltplan zu machen ?



Peter

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wäre es nicht sinnvoller, erst über die benötigten Funktionen
nachzudenken und dann den Schaltplan zu machen?

Da gebe ich dir Recht aber ich versuche eine besehende Schaltung „um zu
verwenden“
die Schaltung findet ihr hier http://icplan.de/seite16.htm. (Echolot ->
http://www.icplan.de/ul2schs.gif Controllerschaltung ->
http://www.icplan.de/ul2sens.gif) da ich diese Schaltung im Original
habe und diese auch schon die Entfernung messen kann wollet ich mir nur
ein neues Programm Schreiben da man leider den Original IC nicht
auslesen kann um sich dann die Messfunktion bzw. das Drumherum an seine
eigenen Bedürfnisse anpassen zu können.

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich richtig gerechnet habe, ist die maximale Zeit etwa 25ms.

Und da nichts anderes zu tunb ist, kann man es wohl so machen, wie
Jens123.
Man kann ja noch einen Comparewert aufsetzen, damit das Programm nicht
hängenbleibt, falls was kaputt ist.

TCNT = 0;
TIFR = 1<<OCF1A;
while(1){
  if( PIND & 1<<PD6 ){
    time = TCNT0;
    break;
  }
  if( TIFR & 1<<OCF1A ){
    // hier Fehlerbehandlung
  }
}


Peter

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.