- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 6 von 6

Thema: for-schleife in Assembler für PIC

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    09.03.2007
    Beiträge
    13

    for-schleife in Assembler für PIC

    Anzeige

    Praxistest und DIY Projekte
    Hallo,
    wie kann ich eine for-schleife in Assembler für einen PIC realisieren,
    welche Befehle brauche ich?

    Danke
    Gruß

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.03.2006
    Ort
    WOB
    Beiträge
    630
    ich würde mal grob sagen:

    du beginnst mit subsection mit "call subblubb" aufrufen
    dann:
    Code:
    subblubb:
    
    	movlw 	0x10            ; hier gewünschten Wert (das ist dein i)
    	movwf 	DVAR           ; Delay-Variable wird runtergezaehlt
    
    PLoop:
    	decfsz	DVAR,F          ; DVAR wird runtergezaehlt, die goto-Anweisung
    
    ...auszuführender code............
    
    	goto PLoop
    return
    Gruß Thomas \/

    Alles über AVR, PIC und CAN
    blog.cc-robotics.de

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    09.03.2007
    Beiträge
    13
    Hallo,
    das sieht gut aus werde es mal probieren!

    Danke

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.01.2006
    Ort
    Mönchengladbach
    Beiträge
    544
    Der auszuführende Code muss zwischen PLoop und decfsz stehen...
    "Decrement F,skip next (Instruction) if Zero"

    Gruß,
    SIGINT

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.03.2006
    Ort
    WOB
    Beiträge
    630
    ist das nicht voll egal? ist ja dann nur noch ne zählgeschichte....
    Gruß Thomas \/

    Alles über AVR, PIC und CAN
    blog.cc-robotics.de

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.01.2006
    Ort
    Mönchengladbach
    Beiträge
    544
    Ähhh,
    ist ne FOR-Schleife nicht ne "Zählgeschichte"?!?

    Nope, es ist nicht egal wo das decfsz steht...
    da der Befehl bei gesetztem Zero-Flag nur die darauf folgende Anweisung übersprungen wird. Das wäre in deinem Fall nur die erste Anweisung vom "auszuführenden Code"... der Rest davon würde ganz normal ausgeführt werden. Und das "goto PLoop" würde dafür sorgen, daß das Programm in einer Endlosschleife verhart. Also ist folgendes richtig:
    Code:
    subblubb:
    
       movlw    0x10            ; hier gewünschten Wert (das ist dein i)
       movwf    DVAR           ; Delay-Variable wird runtergezaehlt
    
    PLoop:
    
    ...auszuführender code............
    
       decfsz   DVAR,F          ; DVAR wird runtergezaehlt, die goto-Anweisung
       goto PLoop
    return
    Gruß,
    SIGINT

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad