Forum: Mikrocontroller und Digitale Elektronik Tachometer


von Andy (Gast)


Lesenswert?

Hallo,

hat jemand von euch schonmal einen Tachometer für einen AVR
Programmiert ? In Assembler ? im Bereich von 0 - mindestens 200 KMh und
dazu noch für die Ausgabe auf einem LCD ? Evtl noch mit einstellbarer
Reifengrösse ?

Ich weiss, viele wünsche, aber wenn Ihr so etwas habt, wäre ich daran
echt interessiert. Habe in der Suche und im googeln nichts wirklich
brauchbares finden können. Vielleicht könnt ihr ja helfen.

Danke schonmal, Gruß, Andy

von Michael von Gersdorff (Gast)


Lesenswert?

Hallo Andy

Hab ich allerding in Basic (Bascom) auf diese Weise ist es recht
einfach. Wo ist Dein Problem?

Michael

von Andy (Gast)


Lesenswert?

Hallo Michael,

Das Problem ist dass ich mich mit bascom und dergleichen nicht auskenne
mit assemblieren und so. Ich programmiere unter avr studio 4, das ist
für mich am einfachsten. Ich kenne die anderen sprachen wie c und basic
nicht so darum hab ich auch keine programme dafür und weiss auch nicht
wie sie funktionieren :) Aber mir würde auch eine fertig assemblierte
.hex datei genügen :)

Andy

von Michael von Gersdorff (Gast)


Lesenswert?

Hallo Andy

Das wäre evtl. eine Motivation mit Bascom Basic anzufangen. Wenn Du
Assembler auch nur ein bischen beherrscht wirst Du mit Bascom in einem
Nachmittag Dinge machen können die Du in Assembler noch nicht
schaffst.

Das Prinzip ist einen Eingang bzw. Zähler zu nehmen der einen Interrupt
hat und bei jedem Flankenwechsel (high/low) einen Zählerstand (18 bit
Zähler) zu kopieren und den Zähler neu zu starten. Man muß den Zähler
(der an der clock hängt)  noch so einstellen daß ein sinnvoller
Meßbereich entsteht (setzen des Vorteilers).

Michael

von Andy (Gast)


Lesenswert?

Hallo Michael,

ich kann schon sehr gut in assembler programmieren und habe auch schon
grössere projekte hinter mir. Das Prinzip des Tachometers ist mir
bekannt und ich könnte mir auch selbst einen programmieren. Mein
Problem in erster linie ist daß ich nicht die Zeit habe mich jetzt
wochenlang hinzusetzen und so ein Tacho zu Programmieren sondern ich
hätte diesen jetzt relativ schnell gebraucht. Wie nach dem Motto
"Warum das Rad 2 mal erfinden ?" Wenn es schon fertige lösungen gibt.
Für ein solches projekt wäre ich momentan echt dankbar auf die schnelle.
Ich hoffe Du verstehst das, darum fragte ich auch hier im Forum nach
einem solchen fertigen Projekt. Nur in der Codesammlung habe ich
garnichts in dieser hinsicht gefunden und beim googeln kamen auch nur
soche projektideen heraus aber nichts was man auf die schnelle
verwerten könnte.

Grüsse, Andy

von Michael von Gersdorff (Gast)


Lesenswert?

Hallo Andy

Ich könnte Dir nur helfen wenn Du es in Bascom machen willst. Es würde
Dich nicht mal einen Tag kosten die Bascom Demo-Version herunterzuladen
und zu installieren. Mit Assembler will ich mich nicht mehr
rumschlagen.

Ps: Welchen Prozessor hast Du? und welche Clockfrequenz, wieviel
Impulse/Kilometer.

Vielleich kann ich Dir das Bascom Hex file schicken. Es sind ja nur
wenige Zeilen.


Michael.

von Andy (Gast)


Lesenswert?

Hallo Michael,

Welcher Prozessor ist mir eigentlich ziemlich egal, ich kann mit
ziemlich allem dienen was atmel in seinem Programm hat. auch mit der
Quarz Frequenz bleibe ich unabhängig, denke aber doch daß ein 4MHz
Quarz oder Schwinger ausreihend ist. Pro Rad Umdrehung gehe ich von 1
impuls aus. Das ganze sollte auf reifengrössen von auto, motorrad und
fahrrad einstellbar sein, schätze mal von 1 bis 2 meter rad umfang.
Eine 3 stellige anzeige reicht, 0 - 200 km/h, muss keine kommastelle
vorhanden sein, aber wenn ist auch nicht schlimm :)

Andy

von Michael von Gersdorff (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Andy

Hat ein bischen gedauert da ich noch meinen Hund bewegen mußte.
Anbei die gewünschte Hex Datei für Atmega 32. Ich schicke Dir auch noch
gleich eine Text- Datei für den Bascom Code.

Michael

von Michael von Gersdorff (Gast)


Angehängte Dateien:

Lesenswert?

Nochmals fuer Andy

Hier ist eine Text Datei die den Bascom Code enthält. Du kannst sie mit
jedem Text Editor lesen

Michael

von Andy (Gast)


Lesenswert?

Hallo Michael,

erst mal tausend Dank für die schnelle Hilfe. In Basic sind das ja
wirklich nur ein paar Zeilen. Habe mir gerade die hex mal im
disassembler angesehen. Klar mit den ganzen Brechnungen, das ist in
assembler schon eine ganze stange mehr. klar dass man da mehrere tage
dran sitzt. Aber ich bevorzuge dennoch die assembler variante, ich
bitte um verzeihung smile weil... es mag zwar mehr aufwand sein aber
so hat man wirklich die kontrolle über jedes bit und kann damit
jonglieren wie man will :) Mir ist auch aufgefallen dass durch den
basic code viele unnötige programmschritte erzeugt werden, so werden zB
alle 32 Arbeitsregister im interrupt auf dem stack gespeichert ( was
vermutlich gar nicht nötig ist, da in der interrupt routine nur mit 5
registern gearbeitet wird ) Es wird der Z-pointer geladen, daten
geladen, danach das high byte erneut geladen obwohl es gar nicht
verändert wurde um die daten wieder zu speichern... also alles in allem
viele unnötige programm schritte die theoretisch den ganzen programm
ablauf verlangsamen. Aber von Der Geschwindigkeit gebe ich Dir recht,
so ein programm ist in ein paar minuten geschrieben :-)
Was mir nicht ganz klar ist, wie werden die daten auf das lcd
geschrieben ? an welchem port ( habe mir jetzt den assembler code nicht
komplett durch geschaut da ein disassembliertes hex file ganz anders aus
sieht als man es programmiert ) wird das ausgegeben ? Ich sehe nur einen
Print Befehl im Basic Programm mit dem ich nicht wirklich etwas anfangen
kann :)

Gruß, Andy

von Hannes L. (hannes)


Lesenswert?

@Andy:

PRINT wirkt auf UART, für LCD gibt es andere Befehle.

Was du da "festgestellt" hast, ist der Grund, warum ich BASCOM
meide...

Leider habe ich auch keinen fertigen Tacho für dich.

Bit- & Bytebruch...
...HanneS...

von Andy (Gast)


Lesenswert?

@Hannes

Der print Befehl gibt also die Daten auf dem UART aus ? wobei noch die
Frage bliebe mit welcher baud rate? Da es mir nun sehr schwer fällt die
einzelnen Programm schritte in dem disassemblierten file
nachzuvollziehen ( Schade dass man es nicht einfach wieder als text
datei ins avr studio kopieren kann we´gen der vielen +xxxxx Adress
Zeilen und den nicht ausgeklammerten kommentaren )müsste ich mir quasi
einen 2. Prozessor nehmen und die dem uart entlockten daten wieder auf
einem Display darstellen welche den aufwand auch nicht gerade
vereinfacht und wohl noch dazu eine verschwendung eines prozessors wäre
lächel

Ich schätze es wird mir wohl doch nichts übrig bleiben als den langen
weg von vorne zu gehen, dabei hätte ich den tacho am Dienstag dringend
gebraucht und über ostern etwas zeit zum basteln gehabt. Seuftz

von Dietmar (Gast)


Lesenswert?

Über AVR-Programmierumgebungen für den PC bin ich nicht so im Bilde. Mit
ARM-Controllern wärst du da besser dran: Von Keil gibt es da den auf 16k
begrenzten Demo-Compiler, mit wählbarem GNU-Compiler, der unlimitiert
ist. Programmiersprache C ist gängiger Standard in der Industrie.
Kannst du für den AVR keine geeignete C-Programmierumgebung finden?

Ansonsten, ist das auf Assemblerebene auch denkbar.

Gruß

Dietmar

von Andy (Gast)


Lesenswert?

@Dietmar

was sind ARM Controller ?

Und was kann ein ARM Controller was ein AVR nicht kann ? Wie schon
gesagt, das Problem an sich ist ja nicht das Programmieren selbst in
Assembler, sondern einfach nur die Zeit um jetzt auf die schnelle
dieses Projekt Tachometer zu verwirklichen, darum hoffte ich ja auf ein
evtl schon vorhandenes fertiges Projekt in Assembler auf dem man evtl
drauf aufbauen kann, vielleicht diverse sachen den eigenen dingen
anpassen. Projekte gibt es wie sand am meer nur echt das problem
tachometer ist nirgends zu finden. Eine tatsache die ich nicht ganz
verstehe :-)

Gruß, Andy

von Hannes L. (hannes)


Lesenswert?

Naja, in der Codesammlung gibt es aber sowas wie Tacho oder
Frehzahlmesser. Zumindest glaube ich mich zu erinnern, da sowas
schonmal gesehen zu haben.

ARMs sind 32-Bitter, das wäre also mit Kanonen auf Spatzen schießen...

...

von Andy (Gast)


Lesenswert?

Hmm.. laut Suchfunktion habe ich nichts gefunden.

Okay 32 Bit wenn ich die in mir habe kann ich auch mehr lach aber wie
du schon schön gesagt hast das übertrifft eine Bazuka :)

von Hannes L. (hannes)


Lesenswert?


von Andy (Gast)


Lesenswert?

Okay,
also habs grad nochmal getestet, wenn ich bei mir "Tacho" Oder
"Tachometer" ins suchfeld eingebe dann bekomme ich "0" Ergebnisse.
muss ich das verstehn ?

von Hannes L. (hannes)


Lesenswert?

> muss ich das verstehn ?

Besser nicht...

Duck & wech...

...

von Hannes L. (hannes)


Lesenswert?

Grrr.....

Wieder das Wichtigste vergessen:

8-D

...

von Andy (Gast)


Lesenswert?

Ohne worte lach

von Hannes L. (hannes)


Lesenswert?

Falls du es doch verstehen willst:

Es liegt vermutlich an den Jokern (Wildcards), also den Sternchen
(Asterisk) vor und hinter meinen Suchworten. Dadurch werden meine
Suchbegriffe auch gefunden, wenn sie mitten im Wort vorkommen.

Es könnte aber auch daran liegen, dass du eine andere Suchfunktion
benutzt als ich.

...

von Andy (Gast)


Lesenswert?

Nur die, die das forum bietet. Vielleicht weil ich in "Codesammlung"
gesucht habe weil das war zu naheliegend wenn man code sucht :-)

von Hannes L. (hannes)


Lesenswert?

> Nur die, die das forum bietet.

Das Forum bietet da unterschiedliche Dinge:

http://www.mikrocontroller.net/forum/read-5-281072.html#288007

> Vielleicht weil ich in "Codesammlung"
> gesucht habe weil das war zu naheliegend wenn man code sucht :-)

Ich habe auch nur in der Codesammlung gesucht. gg

...

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.