Cecko - zacatecnicka
Šerých Jakub
Serych@panska.cz
Pátek Leden 4 23:52:46 CET 2008
Joooo, to je presne ono. Ja vedel, ze to musi byt nejake jednoduche a citelne
:-))
Diiiiky moc
Jakub Serych
> -----Original Message-----
> From: hw-list-bounces@list.hw.cz
> [mailto:hw-list-bounces@list.hw.cz] On Behalf Of Pavel Troller
> Sent: Friday, January 04, 2008 10:30 PM
> To: HW-news
> Subject: Re: Cecko - zacatecnicka
>
> Zdravíĺ,
> rozumím-li tomu, hodí se Vám typ union (viz následující příkládek):
>
> $ cat union.c
>
> #include <stdio.h>
>
> typedef struct { char lo; char hi; } chars;
>
> typedef union {
> unsigned short number;
> chars bytes;
> } un;
>
> int main(void) {
>
> un my_un;
>
> my_un.bytes.lo = 0x55;
> my_un.bytes.hi = 0xaa;
>
> printf("%x\n", my_un.number);
>
> }
>
> $ gcc -o union union.c
> $ ./union
> aa55
>
> > DD,
> > v Ccku (konkretne Microchip C30, ale to je asi jedno) jsem
> toho jeste
> > moc nenapsal, takze se omlouvam za zacatecnicky dotaz. Da
> se vubec, a
> > pokud ano, tak jak, realizovat nekolikery pohled na stejnou
> pozici v pameti?
> > Napriklad mam promennou:
> > unsigned int Sestnactibit;
> >
> > a chtel bych na totez taky koukat jako na:
> > typedef struct HLverze {
> > unsigned char H;
> > unsigned char L;
> > } HLverze;
> >
> > HLverze SestnactHL;
> >
> > V Pascalu se blahe pameti takove triky daly delat pomoci klicoveho
> > slovicka "absolute" ale v Cecku nemuzu prijit na to, jak to udelat.
> >
> > Hlavickove soubory od Microchipu jsou presne tohohle plne,
> jenze tam
> > pouzivaji __attribute__ __sfr__, ktery to usadi na predem
> danou pevnou
> > adresu SFR registu (ta je myslim ve scriptu linkeru .gld nebo v
> > prislusnem inc souboru. (Namatkou vybiram priklad z p30f3012.h):
> >
> > /* MODCON: Modulo Addressing Control Register */ extern volatile
> > unsigned int MODCON __attribute__((__sfr__)); typedef struct
> > tagMODCONBITS {
> > unsigned XWM :4; /* X-RAGU/X-WAGU modulo
> addressing register
> > select */
> > unsigned YWM :4; /* Y-RAGU modulo addressing
> register select
> > */
> > unsigned BWM :4; /* Bit-reversed addressing
> register select
> > */
> > unsigned :2;
> > unsigned YMODEN :1; /* Y-RAGU modulo addressing enable
> > */
> > unsigned XMODEN :1; /* X-RAGU/X-WAGU modulo
> addressing enable
> > */
> > } MODCONBITS;
> > extern volatile MODCONBITS MODCONbits __attribute__((__sfr__));
> >
> >
> > Predem diky za radu, jak tuhle zrejme trivialitu v Cecku vyresit.
> >
> > Jakub Serych
> >
> > _______________________________________________
> > HW-list mailing list - sponsored by www.HW.cz Hw-list@list.hw.cz
> > http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list@list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list
>
Další informace o konferenci Hw-list