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:
Zu Deutsch:Code:PIC 16F628 StartAddress 0x5 BYTE vartest1 WORD SBYTE SWORD PortRd A , VARTEST1 SetPort B , VARTEST1
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:
Ich versuche jetzt mal geschriebenerweise, mir das ganze irgendwie zu "übersetzen"...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
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....






Zitieren

Lesezeichen