Sooo....
Hab eben mal mit CH-Basic etwas rumgespielt...
Ich hoffe, falls fehler auftauchen, werden mir die ASM-Spezies die Richtung weisen, und insgesamt wirds den ASM-Neulingen etwas helfen das alles zu verstehen.
CH-Basic-Code:
Code:
PIC 16F628
StartAddress 0x5
BYTE vartest1
WORD
SBYTE
SWORD
PortRd A , VARTEST1
SetPort B , VARTEST1
Zu Deutsch:
Lade den kompletten Port A in die Variable VARTEST1
Schiebe die komplette Variable VARTEST1 in Port B
Also alles was an Port A reinkommt, gebe ich 1 zu 1 an Port B weiter....
Als ASM-Code macht mir das Prog das hier:
Code:
LIST P= 16F628
INCLUDE "P16F628.INC"
RADIX DEC
ORG 0X5
AUX1_L EQU 0X20
AUX1_H EQU 0X21
AUX2_L EQU 0X22
AUX2_H EQU 0X23
AUX EQU 0X24
S0 EQU 0X25
VARTEST1 EQU 0X26
MOVF PORTA, W
MOVWF VARTEST1
MOVF VARTEST1, W
MOVWF TRISB
END
Ich versuche jetzt mal geschriebenerweise, mir das ganze irgendwie zu "übersetzen"...
LIST P= 16F628
INCLUDE "P16F628.INC
Hier sag ich dem Programm, welchen Controller ich überhaupt verwende....
MOVF PORTA, W
Packe (mov = move ?) den Port A in den Arbeitsspeicher (W ?)
MOVWF VARTEST1
Packe den Arbeitsspeicher W in die Variable VARTEST1
MOVF VARTEST1, W
Packe die Variable VARTEST1 in den Arbeitsspeicher W
MOVWF TRISB
Packe den Arbeitsspeicher W in den Port B
---------
Warum das aber erst PORTA und hinterher TRISB heisst, bin ich überfragt....
Lesezeichen