Hallo, ich wollte fragen, ob es möglich ist, den Timer 1 eines AT Mega8 bei erkennen einer negativen Flanke zu starten und bei einer darauffolgenden positiven Flanke anzuhalten. Den erhaltenen Wert möchte ich dann weiter verarbeiten. Kann mir vielleicht jemand sagen, wie man diesen Betriebsmodus nennt, und wa sich mir im Datenblatt dazu durchlesen muss? Bisher hatte ich nur 8051er und da ist es bei weitem nicht so "komplex" wie beim AVR und seinen vielen einstellmöglichkeiten. Desweiteren gab es glaube ich beim 8051er sowas garnicht. Bin mir nicht so sicher. Für Tipps oder vielleicht ein Tutorial bei dem genau auf solche Sachverhalte, wie z.B. Zeitmessung eines Signals eingegangen wird, währe ich sehr dankbar. Ich versuche nämlich den Zeitabstand zwischen negativer und positiver flanke zu messen. Danke.
Starten und Anhalten geht nicht (außer in Software). Mit Input Capture kann man bei Auftreten eines Ereignisses den aktuellen Zählerstand sichern. Wenn man das zweimal macht, kann man die Differenz bilden und den Abstand der Ereignisse ermitteln. Der Timer läuft dabei aber durch.
Oliver D. wrote: > Bisher hatte ich nur 8051er und da ist es bei weitem nicht so "komplex" > wie beim AVR und seinen vielen einstellmöglichkeiten. > Desweiteren gab es glaube ich beim 8051er sowas garnicht. Erstmal gibt es den 8051er gar nicht, und zweitens kenne ich einige 8051-Derivate, die durchaus komplexer sind (mehr Peripherie haben) als ein ATMega8, der sicher zum "unteren Ende" der AVR-Skala zählt... Der 80C517/537 hat z.B. afair auch Input Capture...
Eigentlich geht es um die Auswertung von DCF. Bevor ich irgendwo nachlese, will ich es selbst versuchen. Eigentlich gibt es ja nur 2 zeiten zu messen. Wenn ich also den Timer bei fallender Flanke starte und 105ms lang laufen lassen und dann durch compare wert stoppe und direkt danach schaue ob noch eine logische 0 oder 1 anliegt, hätte ich meine Zeit ja quasi "gemessen" Wenn nach 105ms noch eine 0 anliegt, ist es für mein programm eine 1 und wenn nach 105ms wieder eine 1 anliegt, ist es für mein programm eine 0.
OK, bei den Zeiten kann man es fast besser in Software machen. Da kommt es auch nicht so auf absolute Genauigkeit an, dass man es unbedingt mit Input Capture machen müsste. Ein paar 10 Taktzyklen Overhead durch einen Interrupt Handler (externer Interrupt) sollten da kein Problem darstellen.
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.