[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