cykl - x51 - optimalizace
Roman Horvath
holatron@seznam.cz
Pátek Červen 18 08:31:44 CEST 2004
Tak ako vravite: cyklus na test nuly a kompilator by mal dat instrukciu
DJNZ,
Namiesto pole[i] byva niekedy rychlejsie pouzti smerniky unsigned char idata
p=&pole
a potom v cykle robit *p=vysledok; p++;
Dalej na miesto konverzie (ADCDATAL >> 4) + (ADCDATAH << 4);
skusit nieco ako (ADCDATAL & 0xF0 ) | (ADCDATAH & 0x0F); myslim tym
nevymienanie horneho a dolneho "niblu" pocas konverzie ale urobit to az po
skonceni vzorkovania. Pripadne to napisat v ASM.
Roman
----- Original Message -----
From: "Lukas Burda" <burdal1@feld.cvut.cz>
To: "[HWnews]" <hw-list@mailman.nethouse.cz>
Sent: Thursday, June 17, 2004 9:36 PM
Subject: Re: cykl - x51 - optimalizace
Prvni a jedimy rozumny krok co me napada je obratit to citani dolu ->
test na nulu.
Thursday, June 17, 2004, 9:16:47 PM, you wrote:
> Zdravim,
> potrebuji co nejrychleji nasazet data z A/D prevodniku do interni
> pameti procesoru ADuC814 (idata buffer 180 bajtu). Muze mi nejaky
> zkuseny C-ckar poradit jak by mely ubihat moje myslenky pokud mam
> nasledujci kod? (KeilC)
> for (i = 0; i < VZORKU_CELKEM; i++){
> // cekani na konec prevodu
> while(!ADCI);
> ADCI = 0;
> // navic chci jen 8 bit vysledek
> pole[i] = (ADCDATAL >> 4) + (ADCDATAH << 4);
> }
> Jak to napsat aby to bylo co nejrychlejsi? Moje uvahy zatim nikam moc
> nevedly. Je mi take jedno jakym smerem se to pole naplni.
> Diky Lukas Burda
----------------------------------------------------------------------------
----
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
HW-list@mailman.nethouse.cz
http://nethouse.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list