[elektro] adattípusok encoder

Lajos Rancz lajos.rancz at gmail.com
Wed Jul 25 10:16:05 CEST 2012


Alap: http://abstrusegoose.com/249

2012. július 25. 10:06 Elight írta, <elight at gmail.hu>:

> Hi!
>
>
> Azt én is nagyon szeretem ,
> ha a az történik amit elsőre elgondoltam..
>
> Ja
> és a C++ meg annyira,  nem tudtam még megkedvelni.
>
> Talán ahhoz ujra jkellene születnem !    :)
>
>
>
> Ha már témázunk ezeken:
>
> Az lenne a kérdésem,
>   ( mert a típuskényszerítésekbe mindig erősen belegabalyodok.. )
>
> Hogy van mondjuk egy encoderem,
>   ami egy regiszter értékét buzrálja.. ( + - )
>
> Limitálom a működését is
>
> tehát
>
>     int   Encoder_Buff = 0;
>     int   Encoder_Min = -200; // Minimál hömérséklet * 10  ( -20Cfok )
>     int   Encoder_Max = 1000; // Maximál hőmérséklet * 10  ( +100Cfok )
>     int*  pEncoder_Buff =  &Encoder_Buff;
>
>
> és pointerrel az int-ben változtatom
>
>      *pEncoder++;   vagy   *pEncoder--;
>
> Ez prímán működik.
> És lehet többdimenziós tömben is lépegetni a változókon
>       táblázatosan, ahogy kell..
>
>    De ha némely tömb-elembe pl nem előjeles számot teszek,
>     tehát  unsigned char-t vagy uint-et
>     akkor van hogy  megkeveredik az egész..
>
> Ezt le lehet egy változóban becsületesen kezelni?
>
>   Jelenleg úgy oldottam meg , hogy négy változót kezelek párhuzamosan
>    tehát minden adattípusra, amit használhatok van
>        egy - egy strukturám.
>
>    pl egy konkrét elemnél nézve
>
>       unsigned char uEncoder_Buffer;
>                char cEncoder_Buffer;
>       unsigned int  iEncoder_Buffer;
>                int  i_EncoderBuffer;
>
>   Tudom nem elegáns, (sőőt sörnyűű )
>     de eddig minden körülménye között
>    tökéletesen működik.
>                          És azért mégis..
>   Lehet ennek más korrektebb módja is?
>    Hirtelen valamiféle típusnélküli pointerel gondolnám,
>      (sajna ebben a témakörben nem negyon mozgok otthonosan .)
>
> Üdv István
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Üdv István
>
>
> 2012.07.25. 09:39:31 dátumon Lajos Rancz <lajos.rancz at gmail.com> írta:
>
> > Helló!
> >
> > Az a baj a C++-al, hogy érteni kell hozzá nagyon :) Az operátor
> > overloading
> > szép dolog, de azért vannak hátulütői, pl az alábbi szándékosan sarkított
> > példában:
> >
> > class selftype
> > {
> >     const int NUM = 1000;
> >     int arr[NUM];
> > public:
> > ....
> >   selftype() { // jo bonyolult, hosszu es lassu konstruktor }
> > ....
> >   selftype& operator+(const sefltype& o)
> >   {
> >     for (int i = 0; i < NUM; ++i) arr[i] += o.arr[i];
> >     return *this;
> >   }
> > }
> >
> > selftype a,b,c,d;
> > a = ...;
> > b = ...;
> > c = ...;
> > d = a+b+c;
> >      ^^^^
> > itt létre fog jönni egy temporális elem (nagyon lassan) ami rögtön meg is
> > szűnik. Szóval szebb lesz tőle a kód, de csínyján kell vele bánni és
> > nagyon
> > tudni mit csinál az ember.
> >
> > Üdv
> >
> > 2012. július 25. 0:10 Info írta, <info at kiralyelektronika.hu>:
> >
> >> > Ertem, akkor eszerint legalabb jol ertettem a problemat :)
> >> > Hat C-ben az operatorok felulirasa nem fog menni, csak C++-ban, ha van
> >> > C++ forrdito a platformodra.
> >> > Persze ha van az adott platformra opensource fordito (gcc, sdcc),
> >> > akkor bele lehetne hackolni, de nem hiszem, hogy egerne...
> >> > Milyen platform ez egyebkent?
> >>
> >> Cortex-M sorozatra kellene. Támogatja a fordítóm a C++-t (csak én
> >> utálom nagyon :)
> >>
> >> Tudnál linket adni vagy hogy hogyan keressek rá ?
> >> Ezer év távlatból rémlik valami, de csak a stdiora meg memmgr-re
> >> emlékeztem, operátorra nem...öreg vagyok már ehez :)
> >>
> >>
> >> -----------------------------------------
> >>           elektro[-flame|-etc]
> >>
> > -----------------------------------------
> >           elektro[-flame|-etc]
>
>
> --
> Az Opera forradalmian új levelezőjét használva: http://www.opera.com/mail/
>
> -----------------------------------------
>           elektro[-flame|-etc]


More information about the Elektro mailing list