Arduino a zadrhel zacatecnika

Pavel Kutina hw na prelude.cz
Neděle Březen 1 22:48:41 CET 2015


Asi to blbe nepisete, takhle by to asi melo vypadat, kdybych nebyl cune 
a psal ciste :)

Nakonec jen rozseparuju jednotlive byty (thx Ales Filip) a vysypu to ven 
"rucne".

Kazdopadne diky, aspon vim, co mi uniklo...

Pavel Kutina



Dne 1.3.2015 v 22:16 Jindroush napsal(a):
> 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
>>
>
>


Další informace o konferenci Hw-list