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