-         
+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: wie funktioniert Timer/Schleife für Lauflicht?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    01.08.2004
    Beiträge
    5

    wie funktioniert Timer/Schleife für Lauflicht?

    Hallo hab mal ein kleines Programm geschrieben. Soll ein Luaflicht werden. Ich weiß, daß das auch einfacher geht wie jedes Bit einzeln zu setzten. Darum geht es mir bis jetzt aber auch noch nicht. Ich hab das Problem, daß wenn ich die Schleife die jetzt im unterprogramm warten steht zwischen jede en einzelnen Block setzt Funktionierts. Also hab ich rigendwie ein problem mit dem Aufruf des Unterprogramms. Wollte das ganze (Zeitschleife) eh mit einem Timer realisieren. Aber das habe ich bis jetzt noch gar nicht verstanden. Setzt einen 12 Mhz Quarz ein. Dadurch brauche ich eine lange Schleife, um das Lauflicht überhaupt sehen zu können. Könnt ihr mir da vielleicht weiter helfen?

    Vielen Dank schon mal

    .include "m8def.inc"


    ldi r16, 0xFF
    out DDRD, r16
    rcall warten
    ldi r16, 0b11111111
    out PORTD, r16
    rcall warten
    ldi r16, 0b00000010
    out PORTD, r16
    rcall warten
    ldi r16, 0b00000100
    out PORTD, r16
    rcall warten
    ldi r16, 0b00001000
    out PORTD, r16
    rcall warten
    ldi r16, 0b00010000
    out PORTD, r16
    rcall warten
    ldi r16, 0b00100000
    out PORTD, r16
    rcall warten
    ldi r16, 0b01000000
    out PORTD, r16
    rcall warten
    ldi r16, 0b10000000
    out PORTD, r16
    rcall warten
    ldi r16, 0b00000000
    out PORTD, r16

    warten:
    ldi r16, 1255
    ldi r17, 255
    loop1:
    dec r17
    brne loop1
    dec r16
    brne loop1
    ret

    Ach ja, was ist der Unterschied zwischen rcall und call? Könnte ich das Unterprogramm auch mir call aufrufen?

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Hi,

    du hast den Stackpointer nicht initialisiert. Daher kann der AVR nicht mehr aus dem Unterprogramm zurückspringen. Füg mal folgendes vor deinen Code ein :

    ldi r16, LOW(RAMEND) ; LOW-Byte der obersten RAM-Adresse
    out SPL, r16
    ldi r16, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse
    out SPH, r16

    ( siehe auch das Tutorial auf http://www.mikrocontroller.net/tutorial/stack.htm )

    MfG Kjion

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    28
    Beiträge
    2.624

    Re: wie funktioniert Timer/Schleife für Lauflicht?

    Zitat Zitat von Eisen3Chlorid
    warten:
    ldi r16, 1255
    ldi r17, 255
    loop1:
    dec r17
    brne loop1
    dec r16
    brne loop1
    ret
    Hi Eisen3Chlorid! ;o)
    Beim obersten "ldi"-Befehl willst Du 1255 in r16 schreiben, das geht aber nicht!
    Ich denke das war ein Flüchtigkeitsfehler, aber ich wollts nur kurz sagen! :o)

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    01.08.2004
    Beiträge
    5
    jup da hast recht gehabt, war in eile. Danke nochmal für die Hulfe, jetzt funktionierts.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    28
    Beiträge
    2.624
    Gut! Das freut mich! :o)

  6. #6
    Gast
    @Florian
    Warum schreibst du unter deinen Namen immer einen Link, der soundso nicht erreichbar ist?
    www.cer-online.de

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    28
    Beiträge
    2.624
    Hi Gast!
    Leider ist der Link noch nicht aktiv!
    Ich hoffe ich schaffe es demnächst die vorläufige Version online zu stellen!

  8. #8
    Gast
    Achso, du machst du Leute erst neugierig
    Ist auch ne gute Taktik.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    28
    Beiträge
    2.624
    Hi Gast!
    So ist das eiegntlich nicht gedacht, ich wollte eigentlich schon längst die Seite online stellen, habe es aber noch nicht geschafft! :o(
    Ich hoffe, ich schaffe das bald mal! :o)

    Ich werde erstamal einen Vermerk (siehe unten) machen!

  10. #10
    Gast

    Re: wie funktioniert Timer/Schleife für Lauflicht?

    [glow=red:3aad367199][shadow=red:3aad367199]EUER SYSTEM GEHÖRT MIR!!!!!!!
    Ihr habt nicht die geringste Chance
    [/shadow:3aad367199][/glow:3aad367199]

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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