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