DTMF pomoci PIC16F84
Ing. Jiří Vojtek
j_vojtek
Středa Březen 17 14:32:30 CET 2004
> > LM> omlouvam se za svoji neznalost, ale zatim mi to Cecko nejak nejde.
> > LM> Potrebuji k jedne promenne pristupovat ruznym zpusobem,
> > LM> konkretne pole CHAR, a potrebuji z neho vybrat jednu polozku jako
> > LM> INT (tedy dva po sobe jdouci znaky).
> >
> > LM> V Cecku jsem zatim objevil dve moznosti
> > LM> 1. pres ukazatele, ovsem vysledny kod v C51 je neefektivni
> > LM> 2. Vytvorit UNION, ovsem kdyz potrebuji k tomu bufferu pristupovat
> > LM> pokazde jinak, vychazi to velmi slozite.
> >
> > A co to udelat obracene, pole intu a pokud chci char, tak vezmu
> > horni/dolni bajt, C51 to udela celkem prefikane, kdyz dam i/256 a
> > i%256 (viz. pripadny listing :-) )
> >
>
> Pokud to ma byt v C51, tak proc nepouzit :
>
> int b[15] _at_ 0xXXXX;
> char c[30] _at_ 0xXXXX;
>
> ma to nevyhodu, ze se nedostanete ale na int zacinajici na lichem indexu
>
> MK
>
Kdyz uz toto, tak pak se to da napsat:
union {
int b[15]
char c[30];
struct {
char blb1;
int d[14];
char blb2;
} shifted;
} moje_promenna;
Pak ji mohu pouzivat:
moje_promenna.b[index]
moje_promenna.c[index]
moje_promenna.shifted.d[index]
Hynek Sladky
Další informace o konferenci Hw-list