Zeitmessung durch externen Interrupt (ATmega8)

#1373129
Lesenswert?

Hallo Forum,

ich bastel an einer Füllstandanzeige, die mittels Ultraschall misst. 
Habe mir ein SRF05 Modul bestellt, welches nach einem Trigger Impuls ein 
zeitabhängigen Pegel zurückgibt. Je kürzer der Pegel desto kleiner der 
Abstand je länger der Pegel desto größer ist der Abstand. Nun habe ich 
das an einen ATmega8 so angeschlossen, dass der Pegel durch externen 
Interrupt1 und 0 erfasst werden kann. Das ganze sollte so arbeiten, dass 
bei steigender Flanke die Zeitmessung startet und bei fallender Flanke 
endet. Das schreckliche daran ist, es funktionierte bereits, doch jetzt 
hab ich den Code neu gestaltet und es geht nicht mehr und ich finde den 
Fehler einfach nicht. Hoffe ihr könnt mir helfen. Im Anhang befindet 
sich Schaltplan und Quellcode als Zip. Ist in C geschrieben...
Je nach Länge des Impuls wird grüne, rote oder gelbe LED an einzelnen 
Pins geschaltet...

Bin für jeden Tipp und Rat dankbar!

Gruß,
Michael
Angehängte Dateien:
Gast #1374697
Lesenswert?

>Das schreckliche daran ist, es funktionierte bereits, doch jetzt
>hab ich den Code neu gestaltet und es geht nicht mehr und ich finde den
>Fehler einfach nicht.
Was hast du denn geändert?
Es fehlen (mir) noch ein paar Randbedingungen, wie die Taktfrequenz (im 
Quellcode wird der Timer mit 1/8-tel Taktfrequenz betrieben).

Ich vermut eine Taktfrqeunz von 8MHz.

Zur Fehlersuche:
Setze eine LED, sobald ein Impuls empfängen wurde.
#1377394
Lesenswert?

Ja, 8MHz ist richtig!

Also eingrenzen lies es sich manchmal ja und manchmal nein, deswegen hab 
ich jetzt nochmal die Hardware überprüft und vermutet, dass es 
vielleicht an einer schlechten Lötstelle am mega8 lag. Beim neu verlöten 
ist mir natürlich wie es kommen musste ein Super Gau passiert und hab 
irgendwie einen Kontakt zwischen GND und VCC geschaffen. Jetzt darf ich 
erst den Chip wieder runterlöten und neuen bestellen, da ich alles in 
SMD hergestellt habe... Meld mich spätestens übermorgen wieder, wenn der 
neue Chip verlötet ist. Trotzdem schonmal danke für die Tipps!
Gast #1377403
Lesenswert?

was ist denn genau kaputt gegangen? Der Spannungswandler? Schau mal ob 
er evtl. nicht doch noch geht, manche haben eine thermische 
Überlastsicherung.

Wenns der Atmega ist dann sollte an sich ein kurzschluss an seinen Pins 
normalerweise nichts machen, oder?
#1381063
Lesenswert?

Kaputt gegangen sollte eigentlich gar nichts sein. Hab beim nachbessern 
der Lötkontakte zwei Pins des ATmega8 verbunden und nicht mehr 
voneinander trennen können. Deswegen hab ich ihn runter geschmissen und 
einen neuen verlötet.

Hab also alle Verbingungen nochmal überprüft und es tut sich immer noch 
nichts. Durch Setzen von LEDs hab ich mal versucht heraus zu finden, was 
passiert. Zur Zeit wird kein Interrupt ausgelöst. Ich hab wirklich 
keinen Rat warum sich da nichts tut...
#1383060
Lesenswert?

Ok, Update! Habe entdeckt, dass die zwei Pins Trigger und Echo am SRF05 
vertauscht hatte. Jetzt tut sich vereinzelt schonmal etwas. Doch in den 
meisten Fällen blinkt die rote LED am SRF05 im Messtakt. Hat dazu jemand 
nen Rat?

Hab irgendwo mal gelesen, dass dann der Triggerstrom zu schwach ist man 
sich da mit einem Elko helfen kann...

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