mikrocontroller.net

Forum: Projekte & Code ATmega8 TIMER-1 (16bit) (Assembler) aktivieren


Autor: Bernhard (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ein kleines Beispiel, um mit dem Timer-1 zu arbeiten.

Viel Spaß

Gruß

Bernhard

Autor: Peter Dannegger (peda)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Bist Du wirklich so blöd es nicht zu kapieren, daß es hier keinen Preis
für die meisten nutzlosen Threads gibt ?


Peter

Autor: DerMax (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Bernhard: Du kannst deine... einsteigerfreundlichen... Beispiele auch
in einen einzigen Thread posten.
Ich denke nicht das sich über die jeweiligen Beiträge so lange
Diskussion entwickeln werden, das mehrere Threads angebracht wären.

Damit wäre uns allen geholfen (Das Forum wird nicht so stark zugemüllt
und wahrscheinlich wird dir dann auch nicht mehr ganz so viel Protest
entgegenschlagen)

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder noch besser...

man mache im wiki eine kategorie ASM code snippets und eine mit C code
snippets und da tut man das dann rein..

dann haben 1. alle was davon weils nicht nach kurzer zeit aus den augen
verschwindet und 2. forum ist wieder frei für diskussionen ;)

73 de oe6jwf / hans

Autor: luxx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey leute,
ihr seid schon die besten!!! *klatsch, klatsch*
ich habe zB durch diesen "nutzlosen" thread endlich ein problem bei
meinem projekt gelöst. und wenn ihr so supertoll seid, alles könnt und
euer forum entmüllen wollt, dann redet doch selbst mit dem admin, dass
er das wiki erweitern soll, damit ihr eure augen nicht mit
einsteigerhilfen quälen müsst. weil MICH zB stört dieser "sinnlose"
threat hier wirklich nicht!

luxx

Autor: D. W. (dave) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jeder kann selbst Artikel erstellen, oder ich bin bevorzugt.

http://www.mikrocontroller.net/articles/AVR_Assemb...

Da kann man sich ja mal ranmachen.

Autor: Boriza (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bernhard und Co,

ich interessiere mich für die Timer-Geschichte nur leider habe ich keine 
Ahnung, wie ich so ein Ding auf dem ATMEGA8 programmieren soll. Ich 
möchte nur ganz einfach einen Ausgang für 30 Sekunden auf High setzen 
wenn ich auf einen Taster am Eingang einen High-Impuls anlege. Das mit 
dem Ausgang über den Taster schalten funktioniert gut nur die 
Zeitverzögerung für das Abschalten des Ports fehlt noch. Bitte wer kann 
mir da helfen ?
Die Sache mit den Timern scheint mir nicht so einfach zu sein oder ?
Vielen Dank schon mal !

PS: Hier mein Prog in das der Timer eingebaut werden soll (siehe 
Anhang).

LG
Boriza

Autor: Trixter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, du hast anscheinend den Anhang vergessen aber ist nicht weiter 
schlimm.

Das Problem hier ist das 30s ziemlich lange ist, selbst für einen 16bit 
Timer. Das Grundprinzip hier ist zu schauen wie lange ein Timer Overflow 
braucht, bzw. wieviele pro Sekunde erzeugt werden.
Im AVR-Tutorial z.B. kriegt man mit 4Mhz und einem Prescaler von 1024 
15,2587 Overflows pro Sekunde. In 30s währen es schon 457,761 Overflows. 
Die Aufgabe hier ist es nun diese 458 (oder 457) zu zählen, am besten 
geht das mit 2 Registern die als 16 bit Register auf 457 gesetzt werden 
wenn der Taster gedrückt wird. Bei jedem Interrupt wird diese herunter 
gezählt, wenn es null ist sind logischerweise 30s vergangen und man kann 
endlich die Aktion ausführen die man wünscht. In deinem Fall einen Pin 
wieder abschalten.

Autor: Sinusgeek (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum Overflow??

Timer 1 hat doch zwei Compare-Einheiten. Das geht viel besser, da man 
den Timer durchlaufen lassen kann und trotzdem trotzdem beide Compares 
und den ICP nutzen kann. Man arbeitet dazu mit den Compare-Registern 
(Aufaddieren des Intervalls auf den jetzigen Stand des 
Compare-Registers). Und weil man auf diese Art den Timer nicht stört, 
bekommt man die Compare-Interrupts auch noch garantiert jitterfrei, 
Verzögerungen beim Int-Aufruf addieren sich also nicht.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Im AVR-Tutorial z.B. kriegt man mit 4Mhz und einem Prescaler von 1024
>15,2587 Overflows pro Sekunde. In 30s währen es schon 457,761 Overflows.

Bitte richtig nachsehen oder mal selbst rechnen . Das gilt für einen 
8Bit-Timer. Ein 16Bit-Timer hat unter gleichen Bedingungen eine 
Overflowzeit von 16,8s.

>Die Sache mit den Timern scheint mir nicht so einfach zu sein oder ?

Doch. Wenn man sich einmal selbst durchgearbeitet hat geht das beim 
nächsten mal wie von selbst.

MfG Spess

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.