drehimpulsgeber - auswertung läuft von selbst

OP #4936066
Lesenswert?
• ▲
▼
Hallo Leute.

blöde Frage - könnt ihr sicher ratzfatz beantworten - bevor ich mich 
noch einen Tag lang herumärgere ...

Ich habe am µC einen Drehimpulsgeber hängen, aber die Auswertung zählt 
von alleine (sporadisch und unregelmäßig) am Display hoch...

Ich habe bereits:
*) ja, der Drehimpulsgeber hängt mit gemeinsamer Masse am µC
*) den Drehimpulsgeber getauscht
*) die Pins am µC gegeneinander & gegen komplett andere getauscht
*) die Schaltung 2x am Streckbrett aufgebaut
*) ein anderes Steckbrett ausprobiert
*) Tiefpässe eingebaut
*) Per 10k-R an V+ gehängt ...
*) meinen Code gegen mehrere Standard-Codes ausgetauscht
*) die Zuleitungen getauscht & sogar den Drehimpulsgeber abgehängt

Ich denk mal, dass das Steckbrett die Wackeleien verursacht ... aber 
auch wenn ich nichts an die Pins (ja, Ausgang inkl Pull-Ups) anhänge?

Ich glaube - eben weil auch Standardcode und alles bis auf die 
Display-Ausgabe ausgeklammert - ist ein Code-Beispiel unnötig ...

Danke und liebe Grüße
Christian
Gast #4936075
Lesenswert?
• ▲
▼
christian s. schrieb:
> ich denk mal, dass das Steckbrett die Wackeleien verursacht ... aber
> auch wenn ich nichts an die Pins (ja, Ausgang inkl Pull-Up und
> gemeinsamer Masse) anhänge?

Ich würde jetzt die Schuld für eine ungeeignete Software nicht auf das 
Steckbrett ziehen. Ein AB-Signal muss sich so systematisch ändern, dass 
der Zufall sich da schon mächtig Mühe geben muss, damit die Signale für 
ein definiertes Hochzählen erzeugt werden. Ein einzelner Wackelkontakt 
auf einem Pin darf nur ein hin- und herspringen um 1 generieren.
Gast #4936082
Lesenswert?
• ▲
▼
christian s. schrieb:
> µC

Welcher

christian s. schrieb:
> ist ein Code-Beispiel unnötig

Nein - zeig bitte

christian s. schrieb:
> jo, hab aber auch Standard-Code (von hier:
> https://www.mikrocontroller.net/articles/Drehgeber) verwendet ... der
> sollte zumindest funktionieren ...

So sehe ich das auch - also kommt der Fehler von Deiner Schaltung oder 
Deinem sonstigen Programm.
OP #4936207
Lesenswert?
• ▲
▼
Wie sagt man? Experten haben meißtens recht?

Ja, Fehler im Code, Variable an falscher Stelle deklariert, und zwar 
genau die, in der das Zwischenergebnis beim Umwandeln von String in Int 
kurz vor der Ausgabe gespeichert wurde. Interessanter Nebeneffekt ...

Danke für die Info, ich hätt sonst noch stundenlang an falscher Stelle 
gesucht ...
Moderator (Firma: Titel) Persönliche Seite #4936324
Lesenswert?
• ▲
▼
christian s. schrieb:
> Danke für die Info, ich hätt sonst noch stundenlang an falscher Stelle
> gesucht ...
Ich bin mir nicht gnz 100% sicher, dass du den eigentlichen Fehler schon 
gefunden hast. Du deklarierst die Variable jetzt einfach woanders? 
Ändert sich jetzt die Variable, die an der Stelle steht, wo vorher die 
andere war?
Dann ist es ein amoklaufender Pointer...

> Variable an falscher Stelle deklariert, und zwar genau die, in der das
> Zwischenergebnis beim Umwandeln von String in Int kurz vor der Ausgabe
> gespeichert wurde. Interessanter Nebeneffekt ...
Da wäre es jetzt interessant, den fehlerhaften Code und die "Korrektur" 
mal zu sehen. Im Idealfall kannst du das auf einen "Dreizeiler" 
reduzieren.
OP #4936400
Lesenswert?
• ▲
▼
Lothar M. schrieb:
> Ich bin mir nicht gnz 100% sicher, dass du den eigentlichen Fehler schon
> gefunden hast.

ja, habe ich, jetzt funktioniert alles (bis auf eine gelegentliche 
Unschärfe von einem Digit beim Umschalten, die bei einem Gray-Code in 
Kombination mit Billig-Drehimpulsgeber von Pollin üblich ist).

Ich hbe allerdings mehrere Fehler gefunden bzw. Fehlerquellen 
eliminiert. Ich habe versucht, die Werte von der Hauptschleife zu den 
Funktionen und zwischen sämtlichen Include-Files per Globale Variablen 
zu übergeben. Und das dürfte gewaltig in die Hose gegangen sein.
Nachdem ich die Variablen ordnungsgemäß und regelkonform übergeben habe 
war alles wieder gut.

Interessant war allerdings, dass die bloße Erwähnung der betroffenen 
Include-Files (#include ...) - ohne das Aufrufen der darin enthaltenen 
Funktionen - ausgereicht hat, um diese "Störung" auszulösen ...

Und die Moral von der Geschicht:
Der einfachste Weg ist nicht immer der richtige Weg ...
Gast #4936408
Lesenswert?
• ▲
▼
christian s. schrieb:
> Interessant war allerdings, dass die bloße Erwähnung der betroffenen
> Include-Files (#include ...) - ohne das Aufrufen der darin enthaltenen
> Funktionen - ausgereicht hat, um diese "Störung" auszulösen ...

Klingt sehr nach einen eigentlich anderen Problem.
Bis bald mit dem nächsten "seltsamen" Verhalten

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren