Ukladani nastaveni v programu pro MCU

Jan Waclawek konfera na efton.sk
Středa Červen 1 20:41:26 CEST 2016


Ano, to je ono dakujem.
Nakolko moje chapanie PICiek dovoluje, toto robi naozaj to, co sa ocakava.

>;MyProject.mpas,21 ::                 x := Oblast^[n];   // v X je vzdy dato 
>0x002C        0x5001              MOVF        R1, 0 
>0x002E        0x2441              ADDWF       FARG_writeeeprom_oblast, 0 
>0x0030        0x6EE9              MOVWF       FSR0L 
>0x0032        0x5002              MOVF        R2, 0 
>0x0034        0x2042              ADDWFC      FARG_writeeeprom_oblast+1, 0 
>0x0036        0x6EEA              MOVWF       FSR0H 
>0x0038        0xF003CFEE          MOVFF       POSTINC0, R3

aj ked nie prilis chapem, preco prekladac pouzil featuru automatickeho
postinkrementu adresneho registra pre nepriamy pristup FSR, ked v kazdom
kole cyklu sa aj tak adresa explicitne vyratava a naplni do toho
registra... no ale nemusim vsetkemu rozumiet :-) Snad mi to nejaky
skutocny PICkar vysvetli.

A ahaho, ked uz ide o skutocne citanie, tak aj tie pointre su odrazu
16-bitove:

>;MyProject.mpas,30 ::                 writeeeprom( PBytearray(@X1), SizeOf(X1), 0 );
>0x0050        0x0E36              MOVLW       _X1
>0x0052        0x6E41              MOVWF       FARG_writeeeprom_oblast 
>0x0054        0x0E00              MOVLW       hi_addr(_X1)
>0x0056        0x6E42              MOVWF       FARG_writeeeprom_oblast+1 


S tym volatile som to prehnal, to asi v tom Pascale nie je, alebo je? Ako
ste to dosiahli, co ste zmenili?

wek



Další informace o konferenci Hw-list