LPC11U68 + C rychlost portu
Pavel Hudecek
edizon na seznam.cz
Úterý Červenec 26 18:48:30 CEST 2016
Bez ní je výsledek asi 100 ms:-)
Ale teď jsem jí zas vypnul, protože mi s ní správně nefunguje I2C, ani debug
proč I2C zlobí...
PH
-----Původní zpráva-----
From: Josef Štengl
Testujete to, doufám, oproti původní verzi na optimalizaci alespoň -O3?
Protože jinak děláte práci za stroj :-)
-------------
Dne 26.7.2016 v 14:58 Pavel Hudecek napsal(a):
> Bingo:-)
>
> 32 ms.
>
> PH
>
> -----Původní zpráva----- From: Jan Waclawek
>
> #include <stdint.h>
> const struct {
> uint8_t a;
> uint32_t dat[];
> } fnt = {.dat = {1, 2, 3, 4, 5}};
>
> void ili_wrI16(void);
> void ili_wrP16(void);
>
> volatile uint8_t znak, r, wid;
>
> int main(void) {
>
> for(uint8_t*p8=(uint8_t*)(fnt.dat+znak+r),x=wid,b=1;x--;(b+=b)?0:(p8++,b=1))
> {
> *p8&b?ili_wrI16():ili_wrP16();
> }
> }
>
>
>> -----Původní zpráva----- From: Jaromir Sukuba
>> Nemate tam nejako zbytocne vela zatvoriek? ;-)
>>
>> http://list.hw.cz/pipermail/hw-list/2016-July/490808.html
>>
>> Dňa 26. júla 2016, 12:21, Pavel Hudecek <edizon na seznam.cz> napísal/a:
>>>
>>> p8 =(uint8_t *) &(fnt.dat[znak+r]);
>>> for (x=0, b=0; x<wid; x++) {
>>> if (p8[b] & (1<<(x&7))) ili_wrI16(); else ili_wrP16();
>>> if ((x&7)==7) b++; // dalsi byte
>>> }
Další informace o konferenci Hw-list