Arduino a zadrhel zacatecnika

Jindroush kubecj na asw.cz
Neděle Březen 1 22:16:53 CET 2015


Nerozumim moc popisu.

Ale ja bych si udelal strukturu, nejaky
struct telegram
{
  struct data
  {
	  uint32_t uiFlags;
	  uint32_t uiVal;
  } sData;
  uint32_t uiCrc;
}

struct telegram t1;
t1.data.uiVal = ...namerena hodnota...
t1.data.uiFlags = nastavene flagy (lze i pomoci bitfieldu)
t1.uiCrc = crc32( t1.data, sizeof( struct data ) );

a pak Serial.write( t1, sizeof( struct telegram ) );

A pisu to z hlavy, takze to pisu urcite uplne blbe ;)

On 1.3.2015 22:01, Pavel Kutina wrote:
> Zdravim,
> 
> C neni muj kamarad a to ani v Arduinu... Resim nasledujici problem
> (prosim, nebijte mne, fakt vim o C stale dost malo, takze je velmi
> pravdepodobne, ze se ptam na trivialitu a unika mi neco zakladniho):
> 
> Mam promennou (int), v ni nejakou namerenou hodnotu.
> Mam seriovy kanal, pres ktery bych tu hodnotu rad dostal ven.
> Kdyz pouziju Serial.print(promenna), tak mi to do serioveho kanalu
> vysype to jako soubor znaku.
> 
> tedy:
> 
> uint32_t pokus = 65;
> Serial.print(pokus);
> 
> vystupem na seriovem kanalu jsou znaky '6', '5'.
> 
> Ano, existuje parametr pro print ve tvaru
> 
> Serial.print(pokus, HEX);
> 
> pak jsou vystupem znaky '4', '1';
> 
> Trochu problem je, ze ja bych si rad obsah te promenne nejdriv rozebral
> po bajtech, pridal jeste nejaky bitovy flag, potom udelal kontrolni
> soucet, ten prilepil k puvodni zprave  a pak to cele odeslal v hex pres
> seriak do sveta, jak to tak vidim, tak tu nejjednodussi metodu odeslani
> HEX cisla asi nepouziju.
> 
> Variantou je Serial.write(char);
> Ten samozrejme v tom predchozim prikladu odesle znak 'A', tedy odesle 0x41;
> 
> Umi ale odeslat jen bajt po bajtu, takze bych potreboval nejak
> zkonvertovat tu hodnotu do hex, nahodit jeste par bitu jako indikator,
> pak ji bajt po bajtu nejak zCRCat, prilepit CRC k tomu puvodnimu cislu a
> zase bajt po bajtu poslat ven.
> 
> Zjevne mi neco zasadniho unika (navic jsem silne nastydly, takze hlava
> moc nefunguje) - napadne vas nejake (pokud mozno transparentni a
> pochopitelne i pro blbce, pointer na pointer pointeru jsem nepobral
> dodnes) reseni? Na druhe strane si to budu resit v Pascalu, tam snad
> vim, jak na to, ale na vysilaci mam Arduino a tenhle divny jazyk...
> 
> Diky za kazdy kopanec spravnym smerem.
> 
> Pavel Kutina
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> 


-- 
Jindroush (kubecj na avast.com)
http://www.kostky.org - Pro fany stavebnic LEGO.


Další informace o konferenci Hw-list