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
Hallo Andy Hab ich allerding in Basic (Bascom) auf diese Weise ist es recht einfach. Wo ist Dein Problem? Michael
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
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
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
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.
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
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
Nochmals fuer Andy Hier ist eine Text Datei die den Bascom Code enthält. Du kannst sie mit jedem Text Editor lesen Michael
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
@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...
@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
Ü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
@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
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... ...
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 :)
> Hmm.. laut Suchfunktion habe ich nichts gefunden. http://www.mikrocontroller.net/forum/forum.php?query=*tacho*+*drehzahlmess*&forums%5B%5D=4&number=100&action=sendsearch 8-D ...
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 ?
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. ...
Nur die, die das forum bietet. Vielleicht weil ich in "Codesammlung" gesucht habe weil das war zu naheliegend wenn man code sucht :-)
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.