www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Blinkschaltung mit Atmel


Autor: Dominik F. (dominik1202)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich würde gerne die LED LED0 im 500ms-Frequenz blinken lassen.

Wie würde dazu der passende Assembler-Code aussehen?
Finde keine passenden Zeitfunktionen.

Danke im Vorraus!

Dominik

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welcher Atmel, AT89C51ED2 ?

LED0 hat kein MC, er hat nur Portpins, an die man LEDs anschließen 
könnte.

Dann hat er noch Timer, mit denen man CPU-Takte zählen lassen kann.

Oder man zählt in Schleifen mit den 8 Registern.

Wie weit man zählen muß für 500ms, hängt vom Quarz ab.


Peter

Autor: Stefan Oberpeilsteiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst dir bei gegebener Taktfrequenz die anzahl an Befehlen während 
500ms ausrechnen und ebensoviele NOP Befehle einfügen ;-), oder du 
zählst zB in einer schleife ein register hoch und überprüfst wann es 
einen bestimmten wert erreicht hat (dazu musst du aber wissen wie lange 
ein Schleifendurchlauf dauert - geht zB mit Simulator oder du schaust 
dir an welcher Befehl wie viele Taktzyklen braucht), oder Möglichkeit #3 
du liest dich in die verwendung von Timer/Counter ein.

lg Stefan

PS: So weit meine erfahrungen - bin aber eher ein Anfänger

Autor: Stefan Oberpeilsteiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da war wohl einer schneller ;-)

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Möglichkeit waere es es eine Variable zu erhoehen / verkleinern , 
diese abzufragen und dann bedingt zu springen.

Falls dein AVR mit einem 1MHz Takt arbeitet koenntest du auch 500k mal 
"nop" in deinen Code tippen.

Gruß,
Dirk

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal ein einfaches Programm, welches alle Pins togglen läßt:
start:
        djnz   p0, start
        djnz   p1, start
        djnz   p2, start
        djnz   p3, start
        jmp    start

P3.7 toggled dabei etwa jede Stunde bei 12MHz


Peter

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

Bewertung
0 lesenswert
nicht lesenswert
Im Anhang findest Du meine Timer_Lib (Timer2/8Bit) ohne Interupt in ASM 
für einen 8MHz Takt. Für eine andere Clock mußt Du es halt anpassen.

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.