Tema: Re: masyvo elementu perdavimas funkcijai
Autorius: Kantega
Data: 2011-02-28 18:53:30
sorry, pavadinima pataisiau (kad būtų aiškiau) tik vienoj vietoj. 
Visose vietose yra viena ir ta pati funkcija, pagal prasmę:

WriteByteToDisplay.

kažkas su tipais ne taip (spėju). 
toks kodas situacijos irgi negelbėja (rezultatas tas pats)

 unsigned char DisplayData[5];
 DisplayData[5] = 'F', 'U', 'C', 'K', 'K';
unsigned char aa;

aa=DisplayData[0];
WriteByteToDisplay(aa);






"gk" <zyna@zyzni.net> wrote in message news:ikgjkn$6kc$1@trimpas.omnitel.net...
> funkcija "WriteByteToDisplay", o kvieti "WriteByteToDOG" ?
> 
> 
> "Kantega" <kf@kantega.org> wrote in message
> news:ikgipm$5ki$1@trimpas.omnitel.net...
>> Sveiki,
>>
>> pagelbėkit lameriui su C (jei konkrečiai, tai WinAVR C) ;)
>> turiu funkciją:
>>
>> void WriteByteToDisplay(unsigned char ByteToSend).
>>
>> Jeigu jai perduodu tiesiogines konstantas. tipo 'K' arba paprastus
> unsigned char kintamuosius, viskas veikia.
>> Tačiau, jei tik pabandau padaryti tokį fokusą:
>>
>> unsigned char DisplayData[5];
>> DisplayData[5] = 'F', 'U', 'C', 'K', 'K';
>>
>> ...
>>  WriteByteToDOG(DisplayData[0]);
>> ....
>> arba kokiam cikle:
>>
>> WriteByteToDOG(DisplayData[i]);
>>
>> Viskas nebeveikia run-time t.y. kompiliuojasi be klaidų ir ispėjimų, o
> programos veikimo metu į displėjų nusisiunčia nežinia kokie duomenys.
>> Darau išvadą, kad kažko nesuprantu su tipais, nes galvoju kad
> DisplayData[0] gražina unsigned char kintamąjį ir kad jį taip paprastai
> galima perduoti į funkciją... ;)
>> Paaiškinkit, pls, kaip yra iš tikrųjų...
>