arduino - povikendovy povzdech
Miroslav Mraz
mrazik na volny.cz
Pondělí Březen 23 12:25:10 CET 2015
Pro 8.bit procesor a třídu úloh, kterou má pravděpodobně řešit je
write(char data) dost dobře navržené obecné rozhraní, používá jen 1
registr pro přenos parametru, takže je efektivní při volání.
Obecnější blokový přenos dat typu write(char* data, int bytes) by musel
používat alespoň 3-4 registry a nebylo by to obecné vzhledem k tomu, že
pokud budou data v progmem, bude se vnitřek funkce muset chovat jinak.
Takže třeba pro sériový port je to v pořádku, ethernet a jiné rychlé
blokové přenosy jsou pro tt. procesor už trochu mimo. Ne že by to nešlo,
ale musí se na to prostě jít jinak.
Mrazík
Dne 22.3.2015 v 22:08 Lukas Burda napsal(a):
>
> while (1) {
> unsigned char c = pgm_read_byte(p++);
> if (c == 0) break;
> n += write(c);
> }
> return n;
>
> Ano! po kazdem byte se vola write te tridy se kterou neco vypisujete.
> To by treba u seriovky tolik nevadilo, ale ethernet trida po kazdem
> write posila packet, takze se kazdy byte textu vysle ve svem packetu!
> Takze cele arduino - na prvni pohled prima, ale kdyz to chce nekdo
> pouzivat poradne, tak to podle me dela tak ze si to stejne postupne
> cele prepisuje... Ted mam bufferovany print, buferovany ethernet,
> odobjektovavam knihovny, kde nejsou objekty potreba... Schvalne. Jdete
> nekdo take touto cestou a kam az jste v upravach dosli? Nejake tipy na
> blbosti v knihovnach? Co je treba prepsat?
>
> L.
>
>
Další informace o konferenci Hw-list