Jeroen Boere
IF you can't convince them, then confuse them!
Ik ben opzoek naar een mogelijkheid om twee words in een 16f628 met elkaar te vergelijken, dit graag volgens het if..then.. else principe.
dus als de twee words overeenkomen: roep dan een bepaalde procedure aan... etc etc.
Ik programmeer in assembler...
wie o wie kan mij hier aan helpen, of mij op weg helpen..
ps. kom nou niet aanzeilen met "in JAL zit het..." want da weet ik al 
Jeroen,
Bedoel je zo iets (dit is een deel van mijn i/o-module via RS232, waarbij de commandos vertaald moeten worden):
.....
actionandreply
movf INCHAR1,W
sublw 'C'
btfsc STATUS,Z
goto Cmessage ;Eerste character is een "C"
movf INCHAR1,W
sublw 'I'
btfsc STATUS,Z
goto IDmessage ;Eerste character is een "I"
movf INCHAR1,W
sublw 'V'
btfsc STATUS,Z
goto VRmessage ;Eerste character is een "V"
goto Invalidcommand
Cmessage bcf STATUS,Z
movf INCHAR2,W
sublw 'C'
btfsc STATUS,Z
goto CCmessage ;1ste 2 characters zijn "CC"
movf INCHAR2,W
sublw 'P'
btfsc STATUS,Z
goto CPmessage ;1ste 2 characters zijn "CP"
goto Invalidcommand ;Geen juist commando
.....
Kan misschien wel effectiever, maar het werkt wel.
Atlantis
ciao 4 now.....
Ik heb geen kennis van PIC's maar in het algemeen: je trekt die 2 words van elkaar af. IF het resultaat 0 is THEN zijn beide words gelijk ELSE zijn ze niet gelijk (:)) Bijbehorende jumps of branches sturen je programma naar waar je het hebben wil.
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Jeroen, dat is vrij simpel.
Je moet eiggenlijk een if..then..else 2x maken. Per byte 1tje, want je hebt 2x een byte = 1 woord.
Gebruik de compare functie om eerst de bovenste bytes met elkaar te vergelijken. Zijn ze gelijk spring dan naar de 2e vergelijking. Is dit al niet gelijk dan heeft het ook geen nut om de onderste bytes te vergelijken en kan die direct eruit springen.
Bij de 2e vergelijking maak je hetzelfde alleen dan voor de onderste bytes. Zijn ze gelijk dan is het hele woord dus gelijk aan het andere hele woord. Is deze niet gelijk dan is het woord niet gelijk.
En nou dit verhaal even omzetten naar assembler 
En je mag natuurlijk ook eerst onder en dan bovenste byte doen, wat jij wilt 
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 14 augustus 2003 01:05:41 schreef Jeroen Boere:
ps. kom nou niet aanzeilen met "in JAL zit het..." want da weet ik al
Dan ben je er toch? Je schrijft het in Jal, jast het door de compiler, en bekijkt het .asm resultaat.
Jeroen Boere
IF you can't convince them, then confuse them!
Op 17 augustus 2003 14:36:55 schreef Wouter van Ooijen:
[...]
Dan ben je er toch? Je schrijft het in Jal, jast het door de compiler, en bekijkt het .asm resultaat.
je hebt helemaal gelijk, heb ik niet aan gedacht 
thx anyway, ik doe het nu met de sublw methode, en werkt lekker 