-         

+ Antworten
Ergebnis 1 bis 9 von 9

Thema: Bascom ATMEGA8 Timer1 Berechnung für 1 sek

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614

    Bascom ATMEGA8 Timer1 Berechnung für 1 sek

    Anzeige

    Hi Leutz,
    Ich hab so meine Probleme mit Timern!

    Kann mir jemand sagen, wie man einen Reloadwert an dem Beispiel:

    Quarz: 7.273800 MHz
    Zeit: 1 sek
    Am besten Timer1

    erklären.

    Ich kanns auch selbst rechnen, aber ich weiß eben nicht wie...

    Vielen Dank für eure Hilfe im Vorraus

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  2. #2
    Gast
    Ist zwar C und nicht Bascom, aber das Prinzip sollte dasselbe sein:
    http://roboternetz.de/phpBB2/viewtop...?p=28310#28310

    Hättest du aber auch leicht finden könne, weil der Thread ganz oben steht ...

  3. #3
    Gast
    Hallo,

    Ich bin leider nicht ganz so gut im Einheitenrechnen....

    Könntest du mir das auch nochmal für mein Beispiel rechnen?

    Ich habe mich überigens vertan, ich möchte 1 ms Takt haben nicht 1 sek.

    Martin

  4. #4
    Gast
    Inwiefern?

    Kannst du nicht mit Zehnerpotenzen umgehen oder weißt du nicht, dass die Einheit Hertz einfach der Kehrwert der Sekunde ist? Dann schau mal in dein Tafelwerk (zu meiner Zeit hatte man sowas in der Schule), da stehen viele nützliche Sachen drin.
    Dir den Kram vorzurechnen macht relativ wenig Sinn, weil so der Lerneffekt quasi gleich Null ist. Und wenn du nichts lernen willst, dann lass den Kram einfach bleiben, es gibt soundso viel schönere Sachen im Leben.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    Den letzten Post streichen wir mal. Dieses "machs ganz oder gar nicht" Gesülze kann ich auf den Tod nicht ausstehen!
    @x-ryder:
    Der Quarz schwingt 7 273 800 mal pro sekunde.
    Der Controller demnach auch weil der Takt nicht vorgeteilt wird.
    Nach Adam Riese ist ein Taktzyklus 1/7 273 800s (0,1347µs) sekunden lang.
    Nun muß man den Prescaler (Vorteiler) in "Config Timer1...." so einstellen, das der Timer1 maximal 65535mal zählt und innerhalb dieses Vorgangs 1Sekunde verstreicht.
    Gültige Werte sin 1,8,64,256 und 1024.
    Jetzt kommt die kleine Rechnerei:
    Man multipliziert die Zykluszeit mit dem Wert für den Prescaler. (ich nehm einfach ma 256 als Wert an)

    0,1347µs * 256 = 35,1988µs.

    Nun dividiert man 1 durch dieses Ergebniss.

    1/0,0000351988s = 28413,28125

    Der Controller kann nur Ganze Zahlen verarbeiten, also rundet man hier ab und es dauert etwas weniger als eine Sekunde, oder man rundet auf und es dauert etwas länger als eine Sekunde bis das Timeroverflowflag die Interruptroutine einleitet.
    Dazu muss man aber dem Timer sagen wo er beginnen soll zu zählen.
    Dazu subtrahiert man den oben errechneten Wert von 65535.

    65535 - 28413 = 37122

    Der erste Befehl in der Interruptroutine muss dann

    Timer1 = 37122

    lauten, und diese Routine wird dann in dem oben ausgerechneten festen Zeitintervall durchgeführt.

    mfG aus P
    der E-Fan

  6. #6
    Gast
    Wenn ich versuche eine Applikation zu entwerfen und keinerlei Eigeninitiative zeige, dann muss er mit so einer Reaktion rechnen. Hätte er mir gesagt, wo es genau bei ihm hängt oder was er nicht vestanden hat, hätte er natürlich auch Hilfe erhalten.
    Von machs ganz oder garnicht war nie die Rede. Ich habe nur die Frage gestellt: "Warum etwas machen, wozu man eh keine Lust hat?".
    Das du ihm das verlinkte Beispiel mit vertauschten Zahlen nochmal verkaust zeigt mir aber wenigstens, dass du es verstanden hast
    Da er jedoch immer noch einen Takt von 1ms benötigt (nicht 1s !!!), wird ihm dein Beispiel wohl auch nichts nützen ...

  7. #7
    Gast
    Okey... ist von uns beiden etwas krass ausgedrückt worden. Meiner Meinung nach sollte man sich - der eigenen Nerven wegen - solche Posts sparen (einfach drüber hinwegsehen) oder effektiv zur Lösung beitragen.
    Ich hab in einem anderen Forum auch sowas erlebt weil ich es wagte meine Frage als blutiger Bascomanfänger versehentlich im falschen Thread und im falschen Forum zu stellen. Anstatt mir zu sagen wo ich eine Lösung finden könnte weil ich an der falschen Stelle gelandet sei hackten zig selbsternannte AVR-GCC-"Profis" mit Sprüchen wie "...falsches Forum..." "...was willste den mit dem Scheiß..." oder "...lern lieber was richtiges..." auf mir rum. Seit dem reagier ich mit allergisch auf solche Kommentare und meide dieses Forum in dem sich das Szenario abspielte.
    Klar... wenn einer ganze Progs haben will schalte ich auch auf stur. Aber Wenns um die Benutzung einzelner Befehle geht und der gleiche Foriker nicht ständig andere Anweisungen erklärt haben will anstatt in der Hilfe nachzuschauen ist das in meinen Augen was anderes.

    mfG aus P
    der E-Fan

  8. #8
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.956
    Blog-Einträge
    1
    Hi,

    ja es wäre schön wenn man mit Anfängern etwas gedultiger ist. Ich denke das ist bislang auch eine Eigenschaft die das Roboternetz auszeichnet.
    Forum in denen jeder zweite Satz "lies im Datenblatt nach" oder noch grassere Sätze formuliert werden gibt es genug. Jeder sollte bedenken das man mal ähnlich angefangen hat.

    Dennoch sollten natürlich Neulinge als erstes mal einige Thread lesen und die Suchfunktion nutzen um die Frage zu lösen. Das wiederholende Antworten nicht sonderlich Spaß machen, sollte man auch bedenken. Manchmal ist daher ein Link auf einen Thread mit passender Antwort auch sehr hilfreich.
    Also wenn sich Fragesteller und Experten genauso Mühe geben, dann macht das Forum beiden noch mehr Spaß.

    Gruß Frank

  9. #9
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.956
    Blog-Einträge
    1
    Hallo x-ryder,

    da öfters nach Timer-EInstellungen gefragt wird, hab ich mal ein hilfreiches Tool dafür geschrieben. Es berechnet nicht nur die Timerwerte sondern erzeugt auch dokumentierten Quelltext. Ich denke das hilft Einsteigern auch wieder ein Stück weiter.

    Schaus Dir mal an. Es kann für fast alle AVR´s benutzt werden
    http://www.roboternetz.de/phpBB2/dlo...le&file_id=169

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •