Hallo,
Ich habe ein kleines Problem mit dem Timer1. Ich würde gerne den Timer1 als Stoppuhr verwenden.
Ich möchte, dass die Stoppuhr startet, sobald der Int0 ausgelöst wurde. Stoppen soll sie, wenn der Int1 ausgelöst wurde.
Die Werte von TCNT1H und TCNT1L soll in zwei Register gespeichert werden, damit ich mit diesen weiter rechnen kann.
Ich hoffe ihr könnt mir helfen :)
Wenn ihr noch Fragen habt oder etwas unklar formuliert ist könnt ihr gerne nochmal nachfragen.
Danke für eure Bemühungen
Gruß Floriz
PS: Das ganze soll in Assembler geschrieben werden :)
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Hmm. Ich versteh deine Antwort nicht ganz. Ich möchte gerne das der Timer1 mit dem auslösen des Int0 anfängt loszulaufen. Dieser soll dann solange zählen, bis Int1 ausgelöst wurde. Diesen Wert den der Timer dann gezählt hat möchte ich in 2 Register speiechern, die ich dann zur weiteren berechnung brauche. Muss ich den Timer dann als Zähler verwenden? Und wie bekomm ich die Werte von den TCNT1-Registern in ein Register?
Gruß Floriz
Den Timer sollte man im normalen Modul laufen lassen, also nicht gerade PWM (vor allem nicht die langsamen Modi mit hoch runter zählen). Das Starten und stoppen muss man von Hand machen, also die Register zum Timer passend einstellen in den ISRs. Der Timer wert liegt in 2 Registern zu 8 Bits (TCNT1L und TCNT1H) - wobei intern auch noch ein Automatische Zwischenspeicherung erfolgt. Daher muss man beim Schreiben und lesen auf die Reihenfolge von low und high Byte achten. Der transfer von IO Register in ein CPU Register geht per Befehl IN (sofern die Register ein niedrige Adresse haben) oder LDS.
Das Stoppen könnte man ggf. besser über die ICP Funktion machen: damit kann man auch einen Interrupt auslösen, aber zusätzlich wird automatisch der Zählerstand in spezielle Register gerettet.
Aus PICTure's be-endung seiner Bericht:
Ich denke er meint das er nicht 'Auf Kommando' ein Programm für dich schreiben möchtest, sondern das du schon erst etwas selbst basteln sollte. Recherchiere erst mal das Datenbuch von dein Mikroprocessor. Hmmm, hattest du das schon mal erzählt welcher das ist? Lass uns erst mal sehen was du schon versucht hat. Dann können wir helfen wenn das nicht funktioniert.MfG
Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) ...
Lesezeichen