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