Autor Tema: Uso de la memoria interna del pic  (Leído 2335 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Uso de la memoria interna del pic
« en: 25 de Diciembre de 2005, 03:58:00 »
Pues eso, he hecho varios programas con el pic y me estan saliendo: basicos,temporizaciones, interrupciones...Ahora se me ha ocurrido algun problema para empezar basico de usar la memoria del pic, pero he mirado en los manuales que tengo y no he encontrado nada, he usado la busqueda del foro y de lo que he leido no he encontrado nada en asm, la cuestion es como direccionar y escribir en la memoria y posteriormente leer lo escrito, datos de 8 bits y si sabeis como hacerlo con datos 16 bit, creo que seria dividirlo en dos de 8 y escribirlo en dos posiciones correlativas
Saludos desde Córdoba, españa

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Uso de la memoria interna del pic
« Respuesta #1 en: 25 de Diciembre de 2005, 05:18:00 »
Perdona... en que lenguaje?
Si juegas contra el mejor, pierdes como los demás.

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
RE: Uso de la memoria interna del pic
« Respuesta #2 en: 25 de Diciembre de 2005, 05:22:00 »
assembler,creia que .asm implicaba el uso de ese lenguaje, es que todavia no domino demasiados los conceptos de programacion
Saludos desde Córdoba, españa

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Uso de la memoria interna del pic
« Respuesta #3 en: 25 de Diciembre de 2005, 05:27:00 »
No tienes razón, no lei esa parte, ando algo despistado, despues de la borrachera de noche buena jejeje. Yo soi de C, siento no poder ayudarte, pero seguro que en el subforo "Alamacen de Asambler" puedes encontrar algo, o alguien que si pueda ayudarte.

Saludos y suerte!
Si juegas contra el mejor, pierdes como los demás.

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
RE: Uso de la memoria interna del pic
« Respuesta #4 en: 25 de Diciembre de 2005, 06:04:00 »
Gracias de todas formas

Bueno buscando por ahi he encontrado la manera de grabar y leer en la eepron desde el programa

LIST   P=16F84A

#INCLUDE <P16F84A.INC>
   
CONTADOR   EQU   0CH
   
ORG 00H
   GOTO INICIO
   ORG   04H
   BCF      INTCON,2;BORRA BANDERA
   DECFSZ   CONTADOR
   GOTO    CONTINUA;Va a retornar de la int,
   GOTO   VERSAL
CONTINUA
   RETFIE         ;Retorna de la subrutina
VERSAL
   MOVLW   64H
   MOVWF   CONTADOR
   BTFSS   PORTB,0;En el ejemplo nos aseguramos de que el bit 0
               ;tendra valor logico "1"
   GOTO   ACTSALIDA
   CLRF   PORTB;DESACTIVA
   RETFIE
ACTSALIDA
;----   Lectura dato -----
;Lee el dato de la memoria y lo saca por el puerto B
   BCF      STATUS,5   ;Seleccion banco 0
   MOVLW   20H         ;Se carga la direccion en w
   MOVWF   EEADR      ;Se pasa a EEADR,define la direccion a leer
   BSF      STATUS,5   ;Seleccion banco 1
   BSF      EECON1,RD   ;Se realiza lectura colocando RD a 1
   BCF      STATUS,5   ;Regresamos al banco 0
   MOVF   EEDATA,W   ;Se rescata el dato de EEDATA a w
;Ya tenemos el dato en w
   MOVWF   PORTB      ;Lo sacamos en la salida
   RETFIE
   
INICIO
   BSF      STATUS,5;Banco 1
   CLRF   TRISB;B  SALIDA
   MOVLW   07H
   MOVWF   OPTION_REG;DIVISOR 256
   BCF      STATUS,5;BAnco 0
   MOVLW   0A0H
   MOVWF   INTCON;HABILITA GIE Y TOIE
;---- Escribimos un dato en memoria ----
;BCF   STATUS,5;Banco -- En este caso ya estamos en el banco 0
   MOVLW   20H   ;Movemos la direccion en la que se guarda el dato
   MOVWF   EEADR   ;Se guarda direccion en EEADR
   MOVLW   0AFH    ;Dato que deseamos guardar
   MOVWF   EEDATA   ;Se guarda dato en EEDATA
   BSF   STATUS,5   ;Banco 1
   BSF   EECON1,WREN   ;Activamos  permiso de escritura en WREN
               ;del registro EECON
;Inicio secuencia de escritura
   MOVLW   55H      ;Inicio instruciones en EECON2
   MOVWF   EECON2
   MOVLW   0AAH
   MOVWF   EECON2   ;Fin de las instrucciones para EECON2
   
   BSF   EECON1,WR   ;Comienza la escritura propiamente dicha
;Termina la escritura
;Es un procedimiento estandar solo variaran dato y direccion   
TIEMPO
   MOVLW   0D8H
   MOVWF   TMR0;CARGA TIMER
NADA
   BTFSC   TMR0,7
   GOTO   NADA
   GOTO    TIEMPO
   
   END

El programa deberia sacar la informacion guardada en la memoria durante 1 segundo y apagarse otro segundo, pero en relidad no lo hace. Para saber si esta activada, analizo el bit 0 del puerto b,ya que se que el dato introducido tendra su  bit0 con valor 1.
El valor si me lo saca, pero no se limpia el puerto B. Despues he leido la eepron y ahi esta el dato,asi que el proposito de grabar y leer lo hace,pero no el timer que esta copiado de hacer un led intermitente.¿Alguien sabe por que me falla?
Y si hay alguna manera de grabar la eepron en la programacion y no mediante programa
Saludos desde Córdoba, españa

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Uso de la memoria interna del pic
« Respuesta #5 en: 26 de Diciembre de 2005, 09:57:00 »
Escrito originalmente por kain589
Gracias de todas formas
Y si hay alguna manera de grabar la eepron en la programacion y no mediante programa


Asi:
Codigo:

   org   0x2100
   de   0x01,0x02,0x03,0x04



Esto guardará los datos en la eeprom cuando programes el PIC, en orden consecutivo a partir de la primera posicion de EEPROM.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
RE: Uso de la memoria interna del pic
« Respuesta #6 en: 26 de Diciembre de 2005, 18:53:00 »
Pues ya lo he probado sastifactoriamente Giño, gracias por la informacion
Saludos desde Córdoba, españa