ich habe mir jetzt seit einiger Zeit den Kopf darüber zerbrochen, wie
man in PIC Assembler
2 16-Bit Werte vergleichen kann (A>B? ja/nein). A und B sind 16 Bit
Ganzzahlen größer Null.
Ich stehe dabei gerade auf dem Schlauch.
Hoffentlich kann mir jemand mit Beispielcode helfen.
mfg Markus Knauß
Beispielcode ist mir gerade zu mühsam. Es müßte genügen, zwei
8-Bit-Subtraktionen (davon die zweite mit Carry) durchzuführen. Das
Carry zeigt Dir danach an, welche Zahl größer ist.
Eckhard
ist das so schwierig?
Ich habe mal einen paar Zeilen angefügt, die die zwei Zahlen Xrest und
Yrest
(jeweils ...-l das niederwertige und ...-h das höherwertige Byte der
16-Bit-Zahl)
vergleicht und je nach dem, ob Xrest>Yrest ist, zu einer Sprungmarke
(ms_3 oder
ms_4 springt, wobei zu beachten ist, das sich ms_3 direkt nach dem Code
befindet)
Ich hoffe, damit kannst du was anfangen.
Bis die Tage
Georg
-----------------------------------------------------
movf Yrest_h,w ; Xrest>Yrest ?
subwf Xrest_h,w ; (Achtung Xrest^=Srest !!!)
btfss STATUS,C
goto ms_4 ; Yrest_h ist größer als Xrest_h -> ms_4
btfss STATUS,Z
goto ms_3 ; Yrest_h ist kleiner als Xrest_h -> ms_3
; High Bytes gleich-> low Bytes vergleichen
movf Xrest_l,w
subwf Yrest_l,w
btfsc STATUS,C
goto ms_4 ; Yrest ist größer gleich als Xrest -> ms_4
;-------------------------------------------------------------M3
ms_3 ; hier: Xrest>Yrest -> Master und Slave vertauschen
... weiteres Programm
vielen Dank für Eure Mühe!
Ich werde das gleich mal ausprobieren...