Hola que tal?. Necesito ayuda con esto.
Estoy leyendo el registro de un Temporizador en ASM, como estoy en un bucle quiero almacenar en cada pasada por el bucle el valor del registro temporizador en diferentes posiciones de memoria, que sean consecutivas. No se Como hacerlo.
Paso el Codigo. Esta comentado lo que quiero hacer.
GLOBAL _Pulso ;make _add globally accessible
SIGNAT _Pulso,4217 ;tell the linker how it should be called
;everything following will be placed into the mitexto psect
PSECT mitexto,class=CODE,reloc=2
acumulador EQU 0x60
_Pulso:
BSF T1CON, 0x0 ;enciendo el timer ni bien se empiece a conmutar la llave
BSF PORTC, 0x6 ;cierro llave del primario, RC6
salto1: BTFSC CMCON, 0x7
GOTO salto1
BCF PORTC, 0x6 ;abro llave del primario, RC6
BSF T2CON, 0x2 ;enciendo TIMER 2
BTFSC PIR1, 0x0
GOTO salto3
salto2: BTFSC CMCON, 0x6
GOTO salto2
NOP ;tenemos 300mv de offset del sensor, entonces le damos un retardo para que la corriente llegue a cero
BSF PORTC, 0x6 ;cierro llave del primario, RC6
BCF T2CON, 0x2 ;apago TIMER2
MOVFF TMR2, acumulador
/* Aca guardo el valor del registro TMR2 en 0x60, pero ahora quiero cambiar el valor de acumulador
para que en la proxima pasada me guarde el valor de TMR2 en 0x61 y asi sucesivamente...0x62, 0x63.. /*
BTFSS PIR1, 0x0
GOTO salto1
salto3: BCF PORTC, 0x6 ;abro llave del primario, RC6
BCF PIR1, 0x0 ;limpio el Flag TMR1IF
return
Pregunta, es posible reservar espacio de memoria solo para guardar el valor de TMR2, o sea que me reserve 0x60,0x61....0x69 , y que solo esten disponibles para guardar el valor del TIMER2. Que ninguna otra variable ocupe esas posiciones.
Pregunto xq estoy Combinando C y ASM.
Luego desde el codigo en C, quier acceder a esas posiciones de memoria. Como lo hago?.
O mejor dicho, todos los valores que se guardan en 0x60,0x61 ponerlos en un arreglo en el codigo en C