Tema: Re: Ta pati duomenu struktura AVR C ir C++
Autorius: lietuvys
Data: 2011-09-21 11:28:16
Per nuoseklų portą vienu paketu, šešioliktainiu formatu siunčiu visus struktūros duomenis kaip atminties gabalą. Pvz., State struktūros siuntimas iš uC į PC:

void SendState(void)
{

uint8_t i, *p;

p = &State;

UART0_bTxByte('s');

for (i = 0; i < sizeof(State); i++) sendIntAsHex(*(p++));

UART0_bTxByte('\r'); 

}

Atitinkamai vyksta siuntimas ir iš PC į uC. Gavimas kiek sudėtingesnis dėl patikrinimų.

-- 

Marius

"Laimis" <wiela@centras.lt> wrote in message news:j5b6bi$t5p$1@trimpas.omnitel.net...
> lietuvys rašė:
> 
>> Ką daryti, kaip apsikeisti duomenimis? Ar teks kiekvieną kintamąjį
>> priskyrinėti tam tikrai atminties (buferio masyvo) vietai?
> 
> Kas vargu ar teks, tai priskirti vieną C struktūrą kitai...
> Pirma, kas šauna į galvą, tai būtų duomenų tipų map'as ar nuoseklus visų 
> narių transformavimas (cast'inimas) iš 32 bit'ų C struktūros į 8/16 
> bit'ų C struktūrą.
> Beje, nesupratau, kaip duomenų mainai susiję su h failo mainais. Kaip 
> apskritai fiziškai ketini realizuoti duomenų mainus, jei kalbi apie 
> pointer'ius, kas lyg ir turėtų suponuoti tokį procesą, kai pc struktūros 
> (ir svarbiausia — programos/atminties) duomenys _tame_pačiame_procese_, 
> perkeliami uC? Kažkoks API? Konkrečiau, kaip tai turėtų vykti?