macro PIC 16F883

Gast #2004005
Gibt es eine Möglichkeit die Argumente für das MAKRO als dierekten Wert
einzugeben ?????


;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
;Programm
     cblock     0x20
VZZ
ZX1
XFLAG    ;
Wert1    ;
Wert2    ;
EE_CON1  ;
EE_ADR  ;
EE_DATA  ;
  endc




        movlw     d'2'
  movwf  Wert1
  movlw    d'4'
  movwf  Wert2

M_Rechnen  Wert1,Wert2
;so  funktioniert es richtig
;‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘
M_Rechnen       0x02, 0x04  ;oder
M_Rechnen       d‘02‘,d‘04‘
;so funktioniert es nicht !!!!!!!!!!!!!!!!!
;gibt es eine Möglichkeit die Argumente
;wie vor als direkte Werte einzugeben ?


;‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘
;MACRO
M_Rechnen  macro  Wert1, Wert2
Banksel PORTA
movf  Wert1,w
movwf  PORTA

movf  Wert2,w
movwf  PORTB

addwf  Wert1,w
movwf  PORTC

ENDM
;‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘

Wer hat das Problem schon gelöst !
Viele Grüsse
Willi
Gast
du verwendest die falschen Apostrophe, siehst du den unterschied ?

      movlw     d'2'
M_Rechnen       d‘02‘,d‘04‘

ansonsten radix dec definieren oder auch so:
M_Rechnen .02 , .04
Gast
Hallo Chris,

M_Rechnen  .02 , .04

;bit             76543210
Ergebnis APORT b'00100001'
         PORTB b'11111111'
         CPORT c'00100100'
Das ist mein Ergebnis
Die Apostrophe haben auch nichts geändert.
Gast
so funktioniert es!!

     cblock     0x20
VZZ
ZX1
XFLAG    ;

Wert1    ;
Wert2    ;

EE_CON1  ;
EE_ADR  ;
EE_DATA  ;
  endc

M_Rechnen  d'2', d'4'

;‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘
;macro
M_Rechnen  macro  Wert1, Wert2
Banksel PORTA
local Wert3
movlw  Wert1
movwf  PORTA
movwf  Wert3

movlw  Wert2
movwf  PORTB

addwf  Wert3,w
movwf  PORTC

ENDM

;---------------------------------------------
;es muss alles über das w-Register laufen
;direkt –Eingabe der Argumente in  Wert1
;oder Wert2 ist nicht möglich
;viele Grüse
;Willi
Gast
Mit Wert3 belegst Du ja noch eine (lokale) Speicherstelle.

So sollte auch ohne gehen:

;macro
M_Rechnen  macro  Wert1, Wert2
Banksel PORTA

movlw  Wert1
movwf  PORTA

movlw  Wert2
movwf  PORTB

addlw  Wert1
movwf  PORTC

ENDM

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.