[elektro] adattípusok encoder

Elight elight at gmail.hu
Wed Jul 25 10:06:19 CEST 2012


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/



More information about the Elektro mailing list