[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 379: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3829: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3247)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3831: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3247)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3832: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3247)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3833: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3247)
Das Elektroniker-Forum • Thema anzeigen - Drehencoder

Drehencoder

Fragen oder Tipps & Tricks über Software

Moderatoren: Tim Sasdrich, Sebi

Drehencoder

Beitragvon Max346 » 24.04.2011, 17:46

Hallo Leute!

Erstmal frohe Ostern euch allen!

Bin grad wieder mal am experimentiren mit dem Mega8 und nem Drehencoder.
Funzt aber leider ned so ganz wie ich will (wie könnte es auch mal anders sein). :)

Wie bekomm ich das Prellen vom Encoder weg?

Hab testweise mal das Zählprogramm vom Chef (7-Segment-Anzeigen - Eine Ziffer bitte) verwendet.
Dieses zählt eben nicht selbst sondern ich mit dem Encoder. Links für runter, rechts für rauf.



Zählen kann das ding schon, nur ned richtig.
Es überspringt immer eine zahl, egal in welcher dreh- (zähl-) richtung.
Der Softwareanschlag bei 9 funzt, der untere bei 0 nicht. Da wird drüber gezählt,
indem er von oben wieder runter zählt.
Der einzige vorteil dabei is, dass ich da dann auch mal die gerade zahlen sehen kann.

Lg Markus
Max346
 
Beiträge: 229
Registriert: 17.05.2010, 14:40
Wohnort: Pottenstein

Re: Drehencoder

Beitragvon topas » 24.04.2011, 18:04

if Cnt < 1 then Cnt = 0 ' was soll es denn sonst sein?
nach 0 kommt 255.
topas
 
Beiträge: 3796
Registriert: 16.08.2010, 12:47
Wohnort: Allen schoene Feiertage!!

Re: Drehencoder

Beitragvon Max346 » 24.04.2011, 18:09

Sollte eigentlich der untere anschlag sein.
Will testweise im Bereich von 0 bis 9 zählen.
Max346
 
Beiträge: 229
Registriert: 17.05.2010, 14:40
Wohnort: Pottenstein

Re: Drehencoder

Beitragvon M.A.R.K 13 » 24.04.2011, 23:01

kleiner als 1 kann nur 0 sein.
Wenn du von dem dann 1 abziehst hast du nicht -1 sondern 255 !
IF CNT >9 then CNT=0
M.A.R.K 13
 

Re: Drehencoder

Beitragvon Max346 » 25.04.2011, 19:50

Ok, ok.
Mir gings bei dem Problem weniger um die Begrenzung.
(Die is meiner Meinung nach das geringste Problem.)
Eher darum, warum der Mega8 den Encoder nicht
richtig (?) ausliest!
Beim drehen am encoder überspringt das Programm immer eine zahl.
Sehe immer nur jede zweite Zahl. Sollte das der Befehl nicht automatisch
unterdrücken (das prellen)?

Wie kann ich das abstellen bzw wie sag ich das dem µC?
Max346
 
Beiträge: 229
Registriert: 17.05.2010, 14:40
Wohnort: Pottenstein

Re: Drehencoder

Beitragvon Sebi » 25.04.2011, 20:02

Du musst den µC einfach nach dem Schleifendurchgang ein paar ms warten lassen.
Sebi
 
Beiträge: 842
Registriert: 10.08.2009, 17:57
Wohnort: Darmstadt

Re: Drehencoder

Beitragvon topas » 26.04.2011, 06:32

Ich habe keine Ahnung von Bascom - aber was ist mit der Variablen E? Muss die nicht mal abgefragt werden?
10ms sind eine gute Entprellzeit: waitms 10 vor der Anweisung loop.
topas
 
Beiträge: 3796
Registriert: 16.08.2010, 12:47
Wohnort: Allen schoene Feiertage!!

Re: Drehencoder

Beitragvon Max346 » 27.04.2011, 09:13

Das mit waitms hat nicht so ganz funktioniert. Es wurde zwar etwas besser aber
er hat immer noch eine Zahl übersprungen.

Werd das jetzt anders machen. Nämlich so wie bei meinen
andren schaltungen. Mit 4093er und 4013er.
Diese Lösung braucht auch nur zwei pins und liefert gleichzeitig
entprellte signale. Muss sie dann nur noch mit if anweisungen bearbeiten.
Max346
 
Beiträge: 229
Registriert: 17.05.2010, 14:40
Wohnort: Pottenstein

Re: Drehencoder

Beitragvon topas » 27.04.2011, 10:17

Du meinst nicht, dass Du es softwaremässig hinbekommst? Das ist ja eigentlich der Sinn eines µC! Möglichst viel durch Software erledigen.
Bascom hat für jeden "Shit" eine Funktion oder Anweisung, deshalb macht es programmierfaul und programmierdumm. Du kannst Dir doch selbst eine Prozedur schreiben, die den Encoder abfragt. Dann weisst Du, wie es geht.
topas
 
Beiträge: 3796
Registriert: 16.08.2010, 12:47
Wohnort: Allen schoene Feiertage!!

Re: Drehencoder

Beitragvon topas » 27.04.2011, 14:49

PS: gib doch spasseshalber mal den Wert E auf der Anzeige aus. Ich habe mir die Hilfe von Bascom mal angeschaut und verstehe die encoder-function ganz anders als Du. Meiner Meinung nach zählt die Funktion selbst und liefert den Zählwert in der Return-Variablen (bei Dir E) zurück. Die Labels "links" und "rechts" kannst Du für weitere Aktionen verwenden, aber nicht zum zählen! Beim Programmstart sollte E auf null gesetzt weden. Wie gesagt, ich kenne Bascom nur vom weggucken...
topas
 
Beiträge: 3796
Registriert: 16.08.2010, 12:47
Wohnort: Allen schoene Feiertage!!


Zurück zu Software

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron