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