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