MicroChip C30 problema

Miko, Imre imre.miko at siemens.com
Thu Sep 27 13:41:04 CEST 2007


Igazabol az ertelme annyi, hogy barmilyen, mondjuk char tipusnak veheted a bitof macro-val
a szamodra fontos bitjet, nem kell bitv tipusura definialni. 

Persze igy is mukodik:

typedef struct {
        unsigned        b0:1, b1:1, b2:1, b3:1, b4:1, b5:1, b6:1, b7:1;
}       bitv;

bitv flags;

#define FLAG_HOLD flags.b0

FLAG_HOLD = 1;

Udv
Imre



> -----Original Message-----
> From: elektro-bounces at tesla.hu 
> [mailto:elektro-bounces at tesla.hu] On Behalf Of Balla Zoltán
> Sent: 2007. szeptember 27. 10:32
> To: elektro at tesla.hu
> Subject: Re: MicroChip C30 problema
> 
> From: "Miko, Imre" <imre.miko at siemens.com>
> >typedef struct {
> >        unsigned        b0:1, b1:1, b2:1, b3:1, b4:1, b5:1, 
> b6:1, b7:1;
> >}       bitv;
> >
> >#define __paste(a,b)     a##b
> >#define _paste(a,b)      __paste(a,b)
> >#define bitof(var,num)  (((bitv *)&(var))->_paste(b,num))
> >
> >A fenti egy base.inc-ben van, amit mindehova beincludalok.
> >Igy lehet hasznalni:
> >
> >#define FLAG_HOLD bitof(flags,0)
> >FLAG_HOLD=0;
> >
> Hmmm..., erdekes megoldas!! Nem vagyok benne biztos, hogy ezt 
> a C30 fordito megeszi...
> Alkalomadtan majd kiprobalom a valosagban is, de egyelore 
> sikerult megoldani a problemamat egyszerubb modon(masik 
> hozzaszolasban irtam hogyan).
> Kosz az otletet...!!!



More information about the Elektro mailing list