Pretypovani s posunem v Mikroe

Tomáš Hamouz hamouz@alsoft.cz
Pátek Září 25 13:33:41 CEST 2009


Jakeho typu je navratova hodnota Adc_Read ?
Zkuste udelat explicitni pretypovani.

var pot: byte;
pot:=byte( word(Adc_Read(0)) shr 2);


<flame>
S ASM by se vám to nestalo, ADC jde zkonfigurovat tak aby vracel primo
vyssi bity v jednom registru a zbytek v druhem.
</flame>

Tomas

R> Zdravim,

R> narazil jsem na takovou blbost a nejak nevim jak si overit kde je 
R> problem. Pisu sem abych ze sebe nedelal mezinarodniho blbce na foru 
R> Mikroe.  

R> Uz nekolikrat jsem pouzil nasledujici vec kdy ponizim rozliseni AD z 10b
R> na 8b:

R> var pot: word;
R> pot:=word( Adc_Read(0) shr 2);

R> s tim ze z AD dostanu 10b zarovnany doprava a v pot mi zustane 8 hotnich
R> bitu.

R> Ted jsem chtel udelat toto:

R> var pot: byte;
R> pot:=byte( Adc_Read(0) shr 2);

R> s tim, ze vysledek by mel byt tentyz jen vysledna promena je typu byte.

R> Jenze jak jsem zjistil tak v pot mam dolnich 8 bitu a nechapu proc. Kdyz
R> si to odladim v debugeru a vlozim misto hodnoty AD konstantu tak to 
R> probehne tak jako v prvnim pripade.
R> Vubec me nenapada v cem je problem a zjistil jsme to az u kamarada, 
R> kteremu jsem delal ten GM udelator kdyz mi volal, ze ma to nastaveni 
R> urovne na draze potenciometru 3x kolem dokola.






Další informace o konferenci Hw-list