Forum: Mikrocontroller und Digitale Elektronik was ist für den AVR eine Flanke?


von batman (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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)

von Peter II (Gast)


Lesenswert?

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?

von Karl H. (kbuchegg)


Lesenswert?

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.

von Thomas E. (thomase)


Lesenswert?

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.

von batman (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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?

von Karl H. (kbuchegg)


Lesenswert?

>  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 :-)

von Uwe (Gast)


Lesenswert?

> Wenn der geschmitt-triggerte Eingang seinen logischen Pegel ändert.
Seit wann sind denn die INTx Pins geschmitt-triggert ???

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Uwe schrieb:
> Seit wann sind denn die INTx Pins geschmitt-triggert ???

Seit 1997.

von lichtgeber (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.