Etwaige Störungen oder Spannungseinbrüche sind manchmal nicht so leicht zu messen. Was wirklich zählt, ist die Spannung direkt am Die, am Silizium. Dort läßt sich so einfach nichts messen. Das nächstbeste ist direkt am Baustein, aber mit beiden Anschlüssen des Scopes. Störungen können auch über die Masse kommen. Aber auch Stromstöße über Portpins können intern einen Reset auslösen.
100nf sind schon eine ganze Menge. Sie machen das Signal auch so langsam, daß es lange im verbotenen Bereich des Eingangs bleibt. Das kann zum Schwingen des Eingangs führen. Solange Prozessor und Encoder auf dem selben Board sind, gehören da gar keine Kondensatoren hin.
Ein zweites Problem ist die Verwendung eines Flankeninterrupts. Wenn das Signal prellt, und das könnte z.B. von der Drehrichtung abhängen, wird ein Interruptsturm ausgelöst, auch das kann zum Absturz führen.
Ein brauchbare Lösung ist das regelmäßige Abfragen der Encoderleitungen. das Prinzip ist hier beschrieben. Wenn man sowieso einen Timertick hat, und den braucht man eigentlich immer, sind das nur ein paar Zeilen Code. Das ist das gleiche Prinzip, daß die Hardwaredecoder, die manche Prozessoren eingebaut haben, auch verwenden.
MfG Klebwax
Lesezeichen