Forum: Mikrocontroller und Digitale Elektronik nochmal Drehencoder


von Rudi D. (rulixa)


Angehängte Dateien:

Lesenswert?

Vor Jahren encoder von Hannes Lux in Assembler in einem DDS Projekt,
verwendet. 
https://www.radiomuseum.org/forum/dds_generator_evolution.html
Jetzt beschäftige ich mit dem si5351 und erweitere um div. Funktionen.
https://create.arduino.cc/projecthub/CesarSound/10khz-to-120mhz-vfo-rf-generator-with-si5351-and-arduino-3a7cad

Es ist in Arduino c geschrieben. Der Encoder verwendet pinchange 
interrupts. Funktioniert an sich gut. Da ich von Assembler komme, habe 
ich die Encoderroutine auf c, als Übung samt Verwendung von Timer 
Interrupts, übersetzt.
Bitte um ggfs nur sachdienliche Kommentare. Code ist sehr kurz, aber 
speziell wegen geringer Erfahrung.

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Rudi D. schrieb:
> Es ist in Arduino c geschrieben.

Ja.

> Der Encoder verwendet pinchange
> interrupts.

Nein, einen 1ms timer interrupt.

> Funktioniert an sich gut.

Schön.
Wobei er nur 0, 1 oder 2 liefert. Wenn das wenigstens 0, 1 und -1 wäre, 
dann könnte man zählen.

> 
https://create.arduino.cc/projecthub/CesarSound/10khz-to-120mhz-vfo-rf-generator-with-si5351-and-arduino-3a7cad

Ich hoffe, ich muss mir das nicht angucken.

von Rudi D. (rulixa)


Lesenswert?

hi mawin
solche Erkenntnisse wollte ich mit meiner Bitte vermeiden.

Wenn jemand -1 haben will, so ersetzt man die 2 in der LUT mit -1. Das 
ist doch nicht der Kern.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Rudi D. schrieb:
> Der Encoder verwendet pinchange
> interrupts. Funktioniert an sich gut

wie kommt man darauf das Pinchange eine gute Idee ist, wird denn 
entprellt?
Ich habe auch nach 1ms im Timerinterrupt entprellt nach Dannegger.

Ich würde gerne wissen warum es die neue Routine gibt und was dieser 
Satz heissen soll?

Rudi D. schrieb:
> solche Erkenntnisse wollte ich mit meiner Bitte vermeiden.

also ist hier ein Müllplatz wo einfach nur Code abgekippt wird!

Rudi D. schrieb:
> Funktioniert an sich gut.

was heisst das? immer, gelegentlich?

Rudi D. schrieb:
> Bitte um ggfs nur sachdienliche Kommentare.

also eben keine Kommentare erwünscht?

von Rudi D. (rulixa)


Lesenswert?

Joachim B. schrieb:

>
> wie kommt man darauf das Pinchange eine gute Idee ist, wird denn
> entprellt?
> Ich habe auch nach 1ms im Timerinterrupt entprellt nach Dannegger.

Weil ich die Originalversion aufgebaut habe. Aber wie zu lesen auf 
Timer2 Interrupt umgestellt habe. Und in meiner Einleitung steht "peda".
Wieder so eine unnötige Schnellschussantwort.

von jo mei (Gast)


Lesenswert?

MaWin schrieb:
> Rudi D. schrieb:
>> Es ist in Arduino c geschrieben.
>
> Ja.

Nein. Es gibt kein Arduino C. Nur weil hinten ino dransteht ist
nicht ein besonderes C sondern "nur" Gnu-C.

von MaWin (Gast)


Lesenswert?

jo mei schrieb:
> Nein. Es gibt kein Arduino C. Nur weil hinten ino dransteht ist
> nicht ein besonderes C sondern "nur" Gnu-C.

Arduino C ist C/C++ unter Verwendung der Arduino Library Umgebung, genau 
so wie Posix C ein Programm in C unter Verwendung der Posix 
Libraryfunktionen ist.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rudi D. schrieb:
> Wenn jemand -1 haben will, so ersetzt man die 2 in der LUT mit -1.
Das geht aber bei einem uint8_t Array schief...

Rudi D. schrieb:
> Bitte um ggfs nur sachdienliche Kommentare.
Was ist jetzt die Frage? Warum sollen wir den Code ansehen und 
diskutieren? Wo liegt das Problem?

Rudi D. schrieb:
> Wieder so eine unnötige Schnellschussantwort.
Du fragst nach Kommentaren und wenn welche kommen, dann wirst du 
grantig?

: Bearbeitet durch Moderator
von Rudi D. (rulixa)


Lesenswert?

Lothar M. schrieb:
> Rudi D. schrieb:
>> Wenn jemand -1 haben will, so ersetzt man die 2 in der LUT mit -1.
> Das geht aber bei einem uint8_t Array schief...
Richtig, aber das weiss man, aber auf jeden Fall der Compiler.

>
> Rudi D. schrieb:
>> Bitte um ggfs nur sachdienliche Kommentare.
> Was ist jetzt die Frage? Warum sollen wir den Code ansehen und
> diskutieren? Wo liegt das Problem?

Im Forum kommen oft "merkwürdige" Kommentare, war als reine Vorwegnahme 
für Derartige gedacht. Bin ja schließlich schon lange dabei und kenne 
das. Die Encodersource von Hannes Lux habe ich von hier.
>
> Rudi D. schrieb:
>> Wieder so eine unnötige Schnellschussantwort.
> Du fragst nach Kommentaren und wenn welche kommen, dann wirst du
> grantig?
Schnellschussantwort bezieht sich auf Kommentare, ohne die Source 
gelesen zu haben. Da steht natürlich auch "peda", also Antwort 
überflüssig.

von Dyson (Gast)


Lesenswert?

Lothar M. schrieb:
> Das geht aber bei einem uint8_t Array schief...

Wieso? Kann man da nicht 0xff reinschreiben?

von Stefan F. (Gast)


Lesenswert?

Rudi D. schrieb:
> also Antwort überflüssig.

Der ganze Thread ist überflüssig. Niemand braucht deinen Code, außer du. 
Für dich ist er gut. Lasen wir es dabei.

von Dyson (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Rudi D. schrieb:
>
>> also Antwort überflüssig.
>
> Der ganze Thread ist überflüssig. Niemand braucht deinen Code, außer du.
> Für dich ist er gut. Lasen wir es dabei.

Außer du? Es heißt „außer dir“. Aber lasen wir das.

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.