Hi Leute, ich wollte Timer0 in kombination mit Timer1 laufen lassen. Dabei representiert Timer0 die Abtastzeit und Timer1 zählt die Anzahl der Punkt. Dafür habe ich den Timer1 Prescaler auf extern gestellt und beim Timer0 den Pin für CMP-Reg-A auf Toggeln gestellt und dann mit dem Eingang vom Timer1 verbunden. Was hat geklapt: Timer0 läuft einwandfrei (gemessen mit Oszi) und in der Simulation mit AVR Studio lief es auch (Timer1 Takt manuel eingegeben). Problem: Der Timer1 reagiert nicht auf den externen Signal. CHIP: Atmega 168 + STK500 Frage: Geht das überhaupt und wenn ja auf was muss ich achten oder wie sollte ich es am besten angehen? Danke im vorraus
>Frage: Geht das überhaupt und wenn ja auf was muss ich achten oder wie >sollte ich es am besten angehen? Tipp: Mal sagen, was Du überhaupt machen willst.
Ich will den Spannungen mit dem AD-Wandler messen. Dabei möchte ich die Abtastzeit und die Anzahl der Messungen einstellen können. Da dachte ich mir ich benutze Timer0 für die Abtastzeit und Timer1 zum zählen der Wandlungen.
PS. beim AD-Wandler (Atmega 168) kann man einstellen, das die Wandlung über Timer 0 gestartet wird.
Achso, ich weiss ,das man das Zählen auch mit einem Register durch führen kann. Aber wenn ich schon einen Timer frei habe warum nicht nutzen und ich finde es eleganter. Ausser dem verstehe ich nicht, warum es nicht klappen sollte.
Anfänger wrote: > Achso, ich weiss ,das man das Zählen auch mit einem Register durch > führen kann. Aber wenn ich schon einen Timer frei habe warum nicht > nutzen und ich finde es eleganter. Nö, es ist sogar ziemlich von hinten durch die Brust ins Auge. Wie willst Du denn den Zählimpuls am Timereingang erzeugen? Du wirst ja wohl einen Interrupthandler haben, der den ADC ausliest und dann ist es ja wohl ein Klacks, noch ne Variable hoch zu zählen. Peter
Hi, zur Zeit läuft es mit einem Register den ich hoch zähle. Ok eleganter ist es vieleicht nicht. Aber ich dachte mir, ich habe einen Timer noch frei, warum nicht nutzen -> kann ja ich gleich was dazu lernen. Der Timer 1 kann als Takteingang einen externen Takt benutzen und mit Hilfe des Comperators vom Timer0 kann ich einen Takt erzeugen. Wenn ich jetzt den Comperatorausgang mit einem Kabel an den externen Timer1-Takteingang anlege sollte es doch klappen (so war die Idee). Die Frage ist also wie bekomme ich den Timer1 dazu auf einen externen Takt zu reagiern. Nach Doku muss ich den Prescale auf extern Takt einstellen (ragiert auf steigende und fallende Pegeln).-> habs gemacht Mir geht es dabei um das Verständnis, ich glaube es müsste klappen und die Frage ist jetzt nur wie. (Glaube alles so zumachen wie es in der Doku steht) @ Peter Dannegger: ich erzeuge den Zählimpuls mit Hilfe von Timer0 und seinen Komperator A. Dabei repräsentiert der Wert im Komperatorregister A den Maximalwert vom Timer0 und bei jedem Überlauf wird der Ausgangs Pin, für Komperator A, getoggelt. Wenn man jetzt den Timer1 auf externen Takt legt und den Pin vom KompertorA mit ihm verbindet müsste es doch klappen, oder? Also ich danke für eure hilfe, könnt ihr mir auch sagen warum es nicht klappt oder wie es klappen könnte?
@ Peter Dannegger: Aber ich habe das Auge getroffen :) und nicht zu vergessen auch die Brust
Du findest also wirklich, einen Draht zu löten, nen Timer und 2 Portpins zu vergeuden ist einfacher, als "i = i + 1;" zu schreiben? Peter
Nein, finde ich nicht. Im Programm benutze ich ja auch 'inc i' statt einen Timer. Darum ging es mir nicht, nach der Doku müsste meine Idee funktionieren und ich möchte nur es zum laufen bringen. Achso, ich löte nichts zusammen ich benutze einen STK500 und das mit den beiden Timern ist nur zur Testzwecken. Die Richtigeanwendung wird Morgen getestet und sollte schon laufen. Naja sollte, man weiss ja nie was passiert.
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.