-         

+ Antworten
Ergebnis 1 bis 5 von 5

Thema: Verzögerung

  1. #1
    Gast

    Verzögerung

    Anzeige

    Hallo,

    Wie bringe ich meinen AVR dazu, eine bestimmte Zeitspanne zu warten?
    (So wie der Pause-Befehl in C-Control Basic)
    Ich programmiere in Assembler für einen ATMega8.

    Bitte helft mir - wäre auch für eine Code-Beispiel sehr Dankbar!

  2. #2
    RN-Premium User Begeisterter Techniker
    Registriert seit
    30.04.2004
    Alter
    39
    Beiträge
    245
    wenn du nichts anders tun willst einfach eine Schleife.

    ldi r16, 10
    ldi r17, 255
    loop1:
    dec r17
    brne loop1
    dec r16
    brne loop1

    macht 10x255 pause, aufpassen, dec frisst einen Takt, brne 1 oder 2 Takte je nachdem ob er springt oder nicht.
    Wenn du nur kurz warten willst, reicht auch mal ein oder mehrere nops

    Wenn du inzwischen was anderes tun willst, mußt du einen Timer setzen und dann in der interruptroutine darauf reagieren.

    lg
    Alex

  3. #3
    Gast
    Danke Alex!

    Ganz versteh ich den Code nicht.Was genau macht der brne-Befehl?

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.11.2003
    Beiträge
    136
    brne?
    branch if not equal = verzweige falls nicht gleich (rtfm)

    google mal nach avrdelay ein nettes progrämmchen mit dem man sich beliebig lange verzögerungsschleifen produzieren kann
    Gruß
    -=jens=-

  5. #5
    Gast
    Danke!

    Das Prog is geil!
    Werde es gleich mal testen!

    [/quote]

+ Antworten

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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