Forum: Mikrocontroller und Digitale Elektronik knacknuss - uP problem


von Sandro (Gast)


Lesenswert?

hab ein kleineres Problem.
hab einen C167. Eine Lichtschranke, die jeweils von einer nocke
unterbrochen wird (auf beide flanken getriggert). Die lichtschranke
gehts auf einen Interrupteingang des C167 und  löst dort pro umdrehung
(360°) rund 82 interrupts aus. Das Kabel zur Lichtschranke ist
geschirmtm, und uP seitig mit Masse verbunden. Auf dem Print wird das
Signal der lichtschranke noch über einen komparator geführt.
Nun zum Problem: Wenn ich die nocke nun eine Umdrehung machen lasse,
hab ich nicht exakt 82 Interrupts die ausgelöst werden, sondern ganz
verschieden zwischen 80 und 88... Das komische ist, das auch ungerade
interuptzahlen vorkommen (ist nicht wirklich möglich, die
Ausgangsposition der nocke ist eindeutig)...
Der Auszuführende Code ist minim, d.h. der up hat genügend zeit diesen
bis zum nächsten interrupt abzuarbeiten (kann ich so einfach abschätzen
da ich nur einen interrupt habe).

Jemand ne idee was ich noch versuchen könnte????

verzweifelter gruss
sandro

von Danny P. (Gast)


Lesenswert?

Ich würde sagen du lässt das ganze Ding mal 5 komplette Umdrehungen
machen und schaust ob die Abweichung wieder nur +- 0...6 beträgt oder
auch das 5fache.

Ist die Abweichung trotzt höherer Umdrehungszahl immer noch +-0...6
dann vermute ich kommen die erzeugten Flanken vom "flattern" des
Ganzen beim starten/stoppen.

Wie lässt du genau eine Umdrehung zu? Kannst du überhaupt sicher sagen
das es genau eine Umdrehung ist? 4,3° als ein Teil ist schon sehr
gering...

von Sandro (Gast)


Lesenswert?

1 umdrehung hat exakt 360°, die geschwindigiet ist ebenfalls immer
identisch (ausser wenn ich ne andere einstelle :-) )
hmmm was genau meinst du mit flattern beim starten und stoppen????

mfg
Sandro

von Danny P. (Gast)


Lesenswert?

mir ist noch schleierhaft wodurch du die 1 umdrehung exakt erzeugst. das
1 umdrehung 360° hat is mir schon klar... aber durch was stellst du
sicher das du genau 360° machst und nicht evt. 364° was ja wieder eine
gezählte abweichung +1 ist.

mit "flattern" meinte ich das dein erzeugen 1 umdrehung evt. zu
ungenau ist. wenn du die umdrehung bspw. per finger selbst drehst wirst
du das rad nie sauber durchgängig bewegen und so etwas wie
"schalter-prellen" erzeugen. nur das da nix kontakt-mässig prellt
sondern das rad sich halt minimal vor- und zurückbewegt... weisst wie
ich mein?

von Sandro (Gast)


Lesenswert?

soll was zusätzliches zu einer bestehenden funktionierendne maschine
geben, die umdrehung wird duch einen DS Motor erzeugt... das passt
ok dann kann ich das flattern wie dus meinst auch ausschliessen, die
kurve die gefahren wird, die ist absolut sauber, hab ich jenste
messungen gemacht...

hmmm noch ne idee?

von Danny P. (Gast)


Lesenswert?

auch wenn theoretisch ausgeschlossen, hast du mal 5 umdrehungen gefahren
und den zähler angeschaut?

von Sandro (Gast)


Lesenswert?

ne werd ich morgen checken...

von dds5 (Gast)


Lesenswert?

Vielleicht sind dem C167 die Flanken des Lichtschrankensignals zu
langsam?  Dagegen würde ein Komparator mit Hysterese bzw. ein Schmitt
Trigger helfen.

Dieter

von Thomas O. (Gast)


Lesenswert?

Hallo,

ich denke auch das es sich um so ein Flattern handelt. Ich würde in die
Interuppt Routine reinschreiben "wenn Flanke länger als xmSek, dann
Zähler erhöhen" also kann ein zu kurzer Impuls keine Zählung auslösen.

von Thomas O. (Gast)


Lesenswert?

Hallo,

und schon wieder ein paar Rechtschreibfehler. Wird zeit für die
Editfunktion.

von Sandro (Gast)


Lesenswert?

dds5 hab ich ja

Thomas O.
hmmm ja das könnts bringen, gibts da so ne fastregel oder so wie ich
die länge berechnen kann, oder nehm ich da einfach mal die hälfte der
kürzest möglichen zeig???

mfg
sandro

von Thomas O. (Gast)


Lesenswert?

Hallo,

denke das solltest du austesten. Ein Oszi wäre nicht schlecht dann
siehst du die Flanken. Vielleicht hilft auch ein keiner Kondensator.

von Sandro (Gast)


Lesenswert?

hab das ganze mal etwas genauer ausgecheckt, leider ohne wirklichen
erfolg... die flanke die der uP bekommt sind ok (Trasholdspannung des
uP liegt bei etwa 2.5V, die Flanke legt die strecke von 2-3V in etwa
25ns zurück) für die ganze flanke von 0 bis 5V wird aber länger als die
zykluszeit gebraucht, was jedoch nicht entscheidend sein dürfte...

IEN Bit hab ich auch mal ausgeschaltet anfangs interrupt... keine
unterschied....

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.