Potřeboval bych poradit, jak pouzivat takulky umistene v programu dal nez v prvnich 256bitech ( 0x0000-0x00FF). Pokud tabubulku umistim napriklad od adresy 0x0100 tak se mi vraceji jine udaje,nez jake jsou v tabulce. Pouzivam PIC 16F883.
zde jsou vynatky z kodu:
provedeni skoku na tabulku
_I2C_write_output
call Start_I2C
movlw b'01010100' ; adresa device E-pot N
call Write_I2C ; zápis adresy dev.
movlw b'00010001' ; prikaz zapisu do VREG
call Write_I2C ; zápis
movf vykon,w ; data pro zapis
btfsc Zero ; vystup = 0?
goto _I2C_write_out0 ; true - skon na otevreni tran.
bcf vykon0 ; fals - tranzistor uzavren
goto _I2C_write_out_tab ; skok na tabulku
_I2C_write_out0
bsf vykon0
_I2C_write_out_tab
call _TabPower ; prevedeni v tabulce
call Write_I2C ; zápis
call Stop_I2C ; konec zápisu
return
samotna tabulka umistena na od adresy 0x0100
[code] if high _TabPower != high _TabPowerKonec
messg " ATTENTION: table ‘_TabPower’ is crossing a page boundary "
endif
;----------------------------------------
; tabulka pro korekci vykonu na vystupu
_TabPower addwf PCL,f ;
retlw .0 ; 0-15 kroku
retlw .8
retlw .16
retlw .24
retlw .32
retlw .40
retlw .48
retlw .64
retlw .80
retlw .96
retlw .112
retlw .128
retlw .144
retlw .168
retlw .192
retlw .248
_TabPowerKonec[/code]
Dekuji za pomoc
administrator: přejmenováno z "pouzivání tabulek"