[elektro] PIC kezdés

Moczik Gabor pm_levlista at progzmaster.hu
Mon Jun 9 11:58:49 CEST 2008


Ágó István wrote:
> Azért a béna programozót úgy nézd, hogy akár egy tömbből történő
> adatkiszedés vagy tömbbe beírás is lehet 10-20 utasítás, ha valami
> alapján ki kell számolni az indexet. Ez akár egy sor is lehet a C
> kódban (amit esetleg makróval old meg a programozó). A Procedural
> Abstraction gyakorlatilag a makrókat irtja ki, csak tud keresni
> sajátmagának is "makrókat", nemcsak azokat szedi ki, amiket  a
> programozó készített.

Ezek azok a dolgok, amik miatt utaljuk a microsoft-ot is: jobban akarja 
tudni mint en, hogy mit akarok.

Ha egyszer valamit makroba tettem, es azt 16x "meghivtam", akkor azt azert 
irtam ugy, hogy 16x forditsa bele a kodba egymas utan, mert igy lesz 
hatekony. Ha most ezt kicsereli 16 call-ra, akkor ~64 gepi ciklus azzal megy 
el hogy ugrik meg visszater.

Ha esetleg beallithato hogy sebessegre vagy kodmeretre akarok optimalizalni, 
akkor nem szoltam. Mindenesetre tartok tole, hogy altalaban sebessegre kell 
optimalizalni, kodmeret tekinteteben nem nehez tulmeretezni a dolgokat, jo 
nagy flash teruletek vannak mar a 18F szerias procikban.
Kivetel ha valamit piciben kell pici uC-vel megoldani.


C-ben programozas eseten tessek kerni ASM list generalast, es ezt nezegetni. 
Mindenkeppen erdemes ismerni a proci sajatossagait, hogy tudja az ember, 
hogy milyen utasitasokat lehet egyaltalan egy C sorbol forditani. Egyik jo 
pelda: CARRY=RD7 es az egesz PORTD bemenet. Igy leforditva van vagy 8 asm 
utasitas, mikozben eleg lett volna a PORTD-t balra rotalni a carry-n 
keresztul (1db RLCF utasitas). Ezt a fordito valoszinu hogy tudja, es ez nem 
hekkeles.


-- 
((( Móczik Gábor  )))--((( E~mail: "pm-01" @AT "progzmaster" .DOT "hu" )))
((( Skype: moczik )))



More information about the Elektro mailing list