Nu har du ju inte skrivit HUR du överför data mellan dom.
Men principen är den samma.
- Ta emot byte(1)
- Lagra i variabel
- Ta emot byte(2)
- subtrahera byte(2) från variabel(1)
- Kolla statusregistret för Zero och om den är satt så är dom lika.
Koden kan se olika ut beroende på hur du överför
Men om vi leker med tanken att du tar emot byten parallellt på PORTA, så skulle kode bli rätt kort, och något i stil med:
Kod: Markera allt
**Sänd byte från PIC1**
movfw PORTA
**Sänd byte från PIC1 igen**
subwf PORTA,0
btfsc STATUS,Z
goto inte_lika
goto lika
Givetvis måste PIC2 veta när PIC1 har sänt/omsänt byten så den vet när den skall läsa.
Det tar ju inte mitt exempel höjd för, men det var väl principen du var ute efter.
I detta exempel användes ju ingen variabel (enligt principen jag beskrev först), eftersom W kan lämnas orörd mellan operationerna. I en skarp kod och med exempelvis överföring med USART så skulle du sannolikt behöva mellanlagra byte(1)
i en variabel, av den anledning att W sannolikt behöver ändras innan byte(2) kan tas emot.
Med trött hjärna så tror jag det vart rätt, fan vad jag känner mig dålig på att förklara
