Tema: Re: Ta pati duomenu struktura AVR C ir C++
Autorius: Omega
Data: 2011-09-21 11:41:39
yra dvi programos:
- viena veikia 32bitų PC
- kita veikia 8bitų kontroleryje

dvejatainiai (binariniai) duomenys gali absoliučiai nesutapti, sakykim atvirkščiai sudėlioti jaunesni-vyresni baitai ar bitai.. jau nekalbant apie minėtus ilgių skirtumus dėl adreso išlyginimo ir dėl tiksliai neapibrėžto kintamojo tipo (ilgio).

p.s.
asmeniškai man teko keisti baitų ir bitų tvarką priimtam signale..

"lietuvys" <lietuvys@takas.lt> wrote in message news:j5c770$qtr$1@trimpas.omnitel.net...
> 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?