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