macro PIC 16F883

Gast #2004005
Lesenswert?

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 #2004490
Lesenswert?

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 #2004713
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren