TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: ErnestAl en 20 de Junio de 2007, 19:27:45
-
Hola, alguien me puede responder a la pregunta de si usar punteros de ram y direccionamiento indirecto en assambler es lo mismo ¿? :? :? :? :? :? :? :? :?
-
Hola, alguien me puede responder a la pregunta de si usar punteros de ram y direccionamiento indirecto en assambler es lo mismo ¿? :? :? :? :? :? :? :? :?
Un direccionamiento indirecto sería la efectivización del uso de un puntero. El puntero en realidad sería otro registro (que tenga un nombre que vos elijas) que dice a donde debe apuntar y el FSR es quien termina ejecutando la acción.
-
Entonces si quisiera almacenar 100bytes recibidos por la USART y almacenarlos en el banco1 de la ram, ¿funcionaria la siguiente rutina de atencion a la interrupcion producida por la USAR?
MOVLW H'80'
MOVWF FSR
guarda BCF STATUS,IRP
BSF STATUS,RP0
BCF STATUS,RP1 ;aCCESO AL BANK1
MOVF TEMP,W
MOVWF INDF
INCF FSR,F
DECFSZ CONTA
RETURN ;SALGO PQ YA HE GUARDADO
GOTO FIN ;SALIDA PARA APAGAR EL PIC
Siento los posibles fallos,todavia estoy en fase de aprendizaje
GRACIAS
-
Asi como está funcionaría si TEMP está en el banco 1.
Si TEMP está en el banco 0 , no hace falta usar los bits de RP0 y RP1. El direccionamiento indirecto apunta a 256 bytes a la vez y solo necesitas tocar el bit STATUS<IRP>
-
Para que lo veas más fácil:
Si bit IRP = 0 entonces:
FSR puede apuntar desde la posicion 0x00 hasta la 0xFF.
Si bit IRP = 1 entonces:
FSR puede apuntar desde la posicion 0x100 hasta la 0x1FF.
Por lo que si querés apuntar a la posición 0xF0 de memoria RAM, IRP debería estar a cero y simplemente cargas el valor 0xF0 en el registro FSR.
Posteriormente, con el INDF afectas su contenido.
Saludos.
-
¿Y como puedo hacer para que el registro temp este en el banco 1?
-
¿Y como puedo hacer para que el registro temp este en el banco 1?
Declararlo en una posición como 0xA0 por ejemplo
TEMP equ 0xA0
-
creo que de vez en cuando una repasada al datasheet no vendria mal :oops: :oops:
gracias!!!!
-
creo que de vez en cuando una repasada al datasheet no vendria mal :oops: :oops:
gracias!!!!
Jajaja, y ... digamos que si :mrgreen: :mrgreen: