Hi, unter einer "Flanke" versteht man ja meist einen Wechsel zwischen den logischen Pegelzuständen HI<->LO. Der AVR scheint aber über seinen externen Interrupt-Pin - nehmen wir mal den INT1 auf Mega8 mit falling edge - schon vor dem logischen Zustandswechsel zu schalten, wie man im Vergleich zum Pollen des Pin-Zustands feststellt. Also sagen wir mal, bei leichten Wellen innerhalb der logischen Pegelbereiche. Dazu hätt ich mal 2 Fragen: Wie ist da die "edge" für den externen Interrupt genau definiert, ich finde das nicht im Manual? Was nimmt man da am einfachsten, um ein Signal des Fototransistors einer Lichtschranke aufzubereiten? Das ist eigentlich schon sehr rechteckig.
batman schrieb: > Hi, > unter einer "Flanke" versteht man ja meist einen Wechsel zwischen den > logischen Pegelzuständen HI<->LO. > Der AVR scheint aber über seinen externen Interrupt-Pin - nehmen wir mal > den INT1 auf Mega8 mit falling edge - schon vor dem _logischen_ > Zustandswechsel zu schalten, wie man im Vergleich zum Pollen des > Pin-Zustands feststellt. Ich würde mal eher sagen, dass du mittels Pollen entweder 'die leichte Welle' komplett übersiehst oder ganz einfach mit dem Pollen zu spät kommst. > Wie ist da die "edge" für den externen Interrupt genau definiert genau so, wie du das annimmst. Wenn der geschmitt-triggerte Eingang seinen logischen Pegel ändert. > Was nimmt man da am einfachsten, um ein Signal des Fototransistors einer > Lichtschranke aufzubereiten? Das ist eigentlich schon sehr rechteckig. Werd mal konkret. Wie hast du die Lichtschranke angeschlossen? (Schaltung) Welche Probleme hast du damit? (Programm)
batman schrieb: > schon vor dem logischen > Zustandswechsel zu schalten, wie man im Vergleich zum Pollen des > Pin-Zustands feststellt. das glaube ich nicht, woher willst du wissen das es in der Zeit wo du gerade nicht pollst zu einem Flankenwechsel gekommen ist?
Und PS: So 'leicht' kann die 'leichte Welle' nicht sein. Denn damit so ein Eingang die Erkennung von 1 auf 0 wechselt, da muss die Spannung schon ganz ordentlich runtergehen. Mit einer Spannung 0.5V unter 5.0V tut sich da noch gar nichts. Ich hab jetzt die genauen Werte nicht im Kopf, aber da muss die Spannung schon auf deutlich unter 3V (bei Vcc gleich 5V) einbrechen, damit dein Programm (und auch die Flankenauswertung) eine 0 darin erkennt.
batman schrieb: > Was nimmt man da am einfachsten, um ein Signal des Fototransistors einer > Lichtschranke aufzubereiten? Das ist eigentlich schon sehr rechteckig. Ein eigentlich schon sehr rechteckiges Signal ist eigentlich nicht so sehr für einen digitalen Eingang geeignet. Das einfachste ist daher, es mit dem AD-Wandler zu messen. mfg.
Es geht einfach um den Zählpuls von einer Gabellichtschranke mit einer Welle mit Schlitzblende. Ist eben so ein normaler Fototransistor drinne, Emitter an Masse und Kollektor über internen Pullup des Ports nach +5V. Das Signal sehe ich auf dem Oszillsokop (Bandbreite ca. 15 MHz) und da gibts keinen Pegelwechsel innerhalb der Hell/Dunkel-Phasen. Beim langsamen Durchdrehen der Welle sieht man auch die Pegelschwankungen durch leichte Blendenunebenheiten im Bereich um die 25mVss oder so. Also wenn das stimmt was ihr sagt, bringts dann auch nichts, noch einen Schmitt-Trigger dazwischen zu hängen. Der würde dann dasselbe machen wie der innere. Ok danke, dann nehm ich wohl einfach das gepollte Signal. Das scheint bisher völlig fehlerfrei - von den Frequenzwerten zu schließen.
batman schrieb: > Es geht einfach um den Zählpuls von einer Gabellichtschranke mit einer > Welle mit Schlitzblende. Ist eben so ein normaler Fototransistor drinne, > Emitter an Masse und Kollektor über internen Pullup des Ports nach +5V. > Das Signal sehe ich auf dem Oszillsokop (Bandbreite ca. 15 MHz) und da > gibts keinen Pegelwechsel innerhalb der Hell/Dunkel-Phasen. Beim > langsamen Durchdrehen der Welle sieht man auch die Pegelschwankungen > durch leichte Blendenunebenheiten im Bereich um die 25mVss oder so. 25mV dürfen dir da überhaupt nichts tun. Vielleicht eine ungewollte Reflexion irgendwo, die kurze, richtige, Spikes erzeugt? Zb. am Rand der Schlitzes?
> Ok danke, dann nehm ich wohl einfach das gepollte Signal.
Ist immer etwas problematisch, wenn man ein Problem gelöst hat, aber
nicht weiß warum. Denn wenn dein Interrupt anspricht, dann tut sich
definitiv was am Portpin. Das kann dich auch beim Pollen beißen, du
musst nur genau den richtigen Zeitpunkt zum Pin-Register auslesen
erwischen.
Und wie das nun mal so ist, der richtige Zeitpunkt ist immer dann
gekommen, wenn man das Teil das erste mal dem Kunden vorführt :-)
> Wenn der geschmitt-triggerte Eingang seinen logischen Pegel ändert.
Seit wann sind denn die INTx Pins geschmitt-triggert ???
Was helfen würde statt des herumratens wäre ein Bild des Signals am Oszi. Dann kann man auch sofort sehen ob da irgendwelche Glitches sind. Die ließen sich dann mit einem RC-Glied schön wegfiltern. Dank des Schmitt-Triggers sollte die reduzierten Flankensteilheit dann auch nichts ausmachen.
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.