jak na user commands PC->PIC
Šerých Jakub
Serych@panska.cz
Pátek Červen 11 21:34:40 CEST 2004
> Pouzivam zejmena pri adresaci portu, napr. RA2
> #DEFINE LED1 PORTA,2
Diky, zase jsem se neco priucil. To program vyrazne zcitelni.
> Otazka tedy zni, co porovnavas s cim, jak to vyhodnocujes.
> Pokud je to tak
> jak si myslim, tak by me zajimala spolehlivost a
> pravdepodobnost, ze se
> nesmyslny prikaz provede jako jiny spravny. A nebo jsem uplne
> mimo a ten XOR
> jen cosi jisti (jakoby parita).
>
Ano, je to jen pridana redundance. Napriklad (windowsi kalkulacku prepnutou do hex k ruce):
A3h XOR 25h XOR 3Bh XOR 11h = ACh <- to se na prijmu pouzije jako posledni cislo ke XORovani
Spravne prijaty kod:
A3h XOR 25h XOR 3Bh XOR 11h XOR ACh = 0 a u jakekoliv vymyslene kombinace vzdy prave 0
Nespravne prijaty kod (chybu jsem si ted treba vymyslel ve druhem bajtu):
A3h XOR 35h XOR 3Bh XOR 11h XOR ACh = 10h <- tedy nenulova hodnota, ktera proste oznacuje chybu a ja v takovem pripade prijaty prikaz ignoruju.
Na vysilaci strane budu vysilat cely kod 3x za sebou, takze mam tri pokusy, ve kterych to doufam alespon jednou dojde bez chyby (radiovy prenos).
>
> PS: porad mam trochu zmatek v instrukcich movlw,movf,movfw
> apod., nedokazu
> rozlisit, s cim prave pracuju, jestli s obsazenou hodnotou
> nebo s adresou.
> Jak se v tom vyznat?
Ja v hlave vzdy nosim tuhle sipku ->
Instrukce vzdy strkaji veci timhle smerem. L je literal, tedy konstanta, pokud je tam F, tak je to adresa registru, kam/odkud se hodnota strci.
Instrukce, ktere maji jeste d - destination, umi vysledek strcit budto do registru F (d=1) nebo do W (d=0)
movf a movfw je jedno a to same, mam radsi ten delsi tvar, protoze je citelnejsi movfw = F -> W
Neprime adresovani se v PICu dela tak trochu jako drbani se levou rukou za pravym uchem, ale funguje to perfektne. Do registru FSR se strci adresa a pak se provede vlastni instrukce s pseudoregistrem INDF.
Jakub Serych
>
Další informace o konferenci Hw-list