-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: PIC - Befehle

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    17.11.2007
    Beiträge
    9

    PIC - Befehle

    Anzeige

    hallo zusammen,

    ich bin ein Anfänger beim PIC-Programmieren und habe eine Frage über Byte-orientierte Register Operation.

    z.B. Befehl addwf, Syntax: addwf f,d
    wenn ich d keinen Wert gebe, ist der default Wert d=0 oder d=1?
    oder muss man einen Wert geben?

    dank im Voraus.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.03.2006
    Ort
    WOB
    Beiträge
    630
    also ich gebe das d immer mit an, einen syntaxfehler bringt er zwar nicht, aber wenn man mal später über den quelltext schaut ist es besser wenn man auch die 0 da stehen hat. so sieht man wo ein d hingehört und wo nicht.

    in deinem Fall bedeutet d= 0; ergebnis in W und d=1; ergebnis in f

    wenn du es zu allen wissen willst gibt es bei sprut ne gute tabelle: http://sprut.de/electronic/pic/assemble/befehle.html

    oder du guckst bei MPLAB in die MPASM Assembler Hilfe, Thema: PIC18 Device Instruction Set.
    Die Tabellen gibt es natürlich auch für andere Kerne
    Gruß Thomas \/

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

  3. #3
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo Valentiano!

    Der default Wert ist d=0.

    MfG

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    67
    Beiträge
    2.063
    @PICture
    Das lese ich aber im Datasheet des PIC16F87x etwas anders:
    d Destination select:
    d = 0: store result in W,
    d = 1: store result in file register f.
    Default is d = 1.

    Ich schreibe ein "W", wenn das Ergebnis im Work-Rgister bleiben und das File-Register nicht verändert werden soll.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.03.2006
    Ort
    WOB
    Beiträge
    630
    ja das mit W und F geht auch, aber ich bin dennoch immer der Meinung man sollte es in jedem Fall hinschreiben auch wenn es ein default gibt
    Gruß Thomas \/

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

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    17.11.2007
    Beiträge
    9
    dank für die Antwort.

    ich habe heute MPLAB IDE v6.30 installiert und ein Beispiel von pic 16f876 compiliert,
    movf variable_2
    addwf variable1_1
    kommt keine Fehlermeldung oder Warnung, sondern zwei Message:
    Message[305] C:\MYPROJ\FILE1.ASM 72 : Using default destination of 1 (file).
    Message[305] C:\MYPROJ\FILE1.ASM 73 : Using default destination of 1 (file).

    das bedeutet, default ist 1.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    16.03.2007
    Ort
    Mücke Sellnrod
    Alter
    30
    Beiträge
    58
    Hallo,
    ich glaube es liegt an den Unterstrichen. mach die mal weg und probiers erneut.

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.03.2006
    Ort
    WOB
    Beiträge
    630
    was sollten die Unterstriche denn tun? kann man die in Variablennamen nicht verwenden?
    Gruß Thomas \/

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

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.11.2007
    Alter
    33
    Beiträge
    140
    Guten Morgen,

    also das mit den Unterstrichen ist unsinn. Die kannst du benutzen!!!
    Das liegt allein an deinen Befehlen. Musst mal ins Datenblatt schauen.

    Bei movf kann man entweder ins Arbeitsregister w oder in die Speicherzelle f speichern. Wird nichts angegeben, wird in f (1) default gespeichert. Mit movf f,0 würdest du in w speichern.

    In deinem Fall speicherst du das, was in variable_2 ist, wieder in die Speicherzelle variable_2 zurück. Ob das beabsichtigt ist?

    Bei addwf sieht das ganze ähnlich aus. Addiere w auf f und speichere dann in w(0) oder in f(1) default.

    Du addierst das was in w steht auf variable1_1 und speicherst in variable1_1 .

    Ich hoffe das hat geholfen!

    Gruß

  10. #10
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo!

    Kann es sein, dass es für verschiedene Befehle und verschiedene PICs verschiedene defaults gibt?

    Immer wenn ich bei z.B. incf X,1 das 1 vergessen habe, hat die X nicht inkrementiert, das default ist dann 0. Am besten ist immer ausprobieren.

    MfG

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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