[elektro] C18 segítség
hg12345
hg12345 at freemail.hu
Wed Dec 7 18:08:46 CET 2016
A következőt még meg lehet próbálni
proba((union_proba) {.byte=0x012}); ezt egy rendes C fordító megeszi....
több ötletem nincs, local változóval lefodul mármint a hívásba local változót teszel bele, ill megfelelő változóra mutató pointertrel lefordul.
Régen használtam a C18 fordított, (szerencsére már nem kell) de nagyon sok mindent nem fordított le, nagyon szükek a lehetőségek benne, elvileg kicsit lehet bővíteni a lehetőségeket, ha engedélyezed a indexelt pointer regiszterek használatát. (de ehhez régen licens kód kellett)
"Balla Zoltán" <sdrlab at yandex.ru> írta:
>2016.12.07. 13:56 keltezéssel, fi F írta:
>> A cast-olva is hibásnak veszi.
>>
>> A fenti megoldás működik(az erteket egy union valtozoba) , de akkor
>> felesleges függvényben átadni, "global" változót fogok használni.
>> Igy még szerintem gyorsabb és rövidebb is a fordított kód, de nem szép.
>>
>> De ha valaki tudja az eredeti problémára a megoldást, az érdekelne.
>>
>>>>>
>>>>>
>>>>> typedef union _union_proba
>>>>>
>>>>> {
>>>>>
>>>>> unsigned char byte;
>>>>>
>>>>> struct
>>>>>
>>>>> {
>>>>>
>>>>> unsigned char size:2;
>>>>>
>>>>> unsigned char akarmi:5;
>>>>>
>>>>> };
>>>>>
>>>>> }union_proba;
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> void proba(union_proba yyy)
>>>>>
>>>>> {
>>>>>
>>>>> unsigned char x;
>>>>>
>>>>> x = yyy.byte;
>>>>>
>>>>>
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> { // a függvény hívás
>>>>>
>>>>>
>>>>>
>>>>> proba(0x12);
>>>>>
>>>>> !!!! Error [1146] type mismatch in argument 1 !!!!!
>>>>>
>>>>>
>
>Hol van a kapcsolat a 0x12 és az union címe között ? A függvény ott egy
>union_proba típusú változót vár, nem egy tetszőleges számot. Én már ott
>elvesztettem a fonalat, hogy mi lenne a koncepciód ezzel ?
>
>Zoli
>
>-----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list