PIC elado

Istvan Retaller istvan.retaller at evoran.hu
Wed Apr 30 18:46:14 CEST 2003


Szia, Imre!

Nem gyozok szabadkozni, hogy nem akarok senkit megteriteni. Nem kapok
jutalekot Atmelektol (sajnos). Nyugodtan hasznald a PIC-et, ha ahhoz
van kedved. Volt olyan idoszak, mikor mar volt avr, de en meg mindig
pic-eztem - megszokasbol.

>>   movlw 11
>>   movwf rega         ; <<
>
>Ez a sor itt felesleges

Miert? Maskepp hogyan kerul rega-ba a 11?




>>    movf    b,w          ;a W-bol toltesz a b-be. De a w-t sem inicializaltad!
>
>Gondolom mar elfelejtetted, azert lehet de ez pont a w inicializalasa b-bol.


Es a w-t ki el mikor inicializalta egy fel nem tuntetett movlw nn utasitassal?



Ugy gondolnam, hogy az osszehasonlitasnak nem csusztatasokon kene
alapulnia. Az elozo peldaidban, mint ramutattam, a pic regisztereiben
benne voltak a kezdo ertekek, az avr-ben nem. Ez csusztatas volt.

Ez mar rafinaltabb, mert reszben igaz:
>        incf    PORTA,w
>        movwf PORTB
Talaltal egy olyan lehetoseget, hogy a pic kevesebb utasitassal csinal
meg valamit. Ez igaz is, csak az a baj, hogy sajnalatosan inkorrekt
dolog az elfogulatlan olvasot ilyenekkel felrevezetni. Utaltam ra, hogy
nem abbol all egy bencmark test, hogy tudok-e ilyen utasitast talalni.
Ilyen alapon sorolhatnam, amiknek nyomaba nem er a pic, ezek mind-mind
_egy_ utasitas avr-ben:

adiw regpar,n		- regiszter _par_hoz hozzaadas, 2 byte-osan !!!
push reg		- korlatlan melyseg, ameddig birja a memoria
pop reg
cpse reg1,reg2	- 2 _tetszoleges_ regiszter osszehasonlitasa,
					skip if equal
eor reg1,reg2		- 2 _tetszoleges_ regiszter exclusive or-olasa
			de lehet mas logikai muvelet is.

Csak egy nehanyat, kapasbol, a teljes biztosan 10 felett van.
Lemehetunk utasitasszintu osszehasonlitasba is, ott meg nagyobb lesz a
kontraszt, mint a korantsem teljes felsorolasbol lathato. Javits ki,
ha tevedek, de ha mar ennyire arra fokuszalsz, osszesen 2 db olyan
utasitas van, amit a pic kevesebb utasitassal csinal:
1. incf port
2. muvelet indirekt regiszterrel
Most varom, hogy elkezdd reszletezni, hogy de ez tobb utasitas, igy
valaszul en is szetszedem a fenti egy utasitasnak irt dolgokat es
az eor reg1,reg2 utasitast a 32*32 regiszternek megfeleloen 1024
utasitasnak tuntetem fel. :((

A memoria ezen _felul_ van, mint a luxus csucsa. Nem kell allandoan
es szuksegtelenul irogatni, mint a peldaidban teszed. Mint lathattad,
egyaltalan nem is volt ra szukseg. A 32*32 bites szorzasnal azt irtad
a pic-rol:
>Csak kicsit hosszabb mint AVR-en:
>Nos, tetszik ez az algoritmus, mar ezert erdemes volt egy kicsit
>vitatkoznunk, igy megismertem ezt is.

Hasznald egeszseggel. A commentek ellenere ez sajat, csak raszoktam
az angol commentre, mikor kulfoldi cegeknek dolgoztam :))

Meg egyszer: NEM kapok jutalekot, NEM erdekel, ki ragaszkodik a pic-hez,
de hat ez a tema az osszehasonlitasrol szol. Hadd probaljam mar meg
en is meggyozni azokat, akik egy pillanatra megalltak, hogy elgondol-
kozzanak. NEM az Atmel ugynoke vagyok, csak az a hulye meggyozodesem,
hogy talaltam valami erteket es azt kozkinccse teszem - akinek kell.

Udv, RI






More information about the Elektro mailing list