Autor Tema: LA ESCRITURA EN LA FLASH , NO ME SALE  (Leído 3431 veces)

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

Desconectado JoseLuis2801

  • PIC16
  • ***
  • Mensajes: 168
LA ESCRITURA EN LA FLASH , NO ME SALE
« en: 21 de Mayo de 2014, 07:45:42 »
Estoy con el PIC 16F1503, que tiene 3,5Kb de RAM.  http://docs-europe.electrocomponents.com/webdocs/1084/0900766b81084086.pdf

Pues como que no me entero, a ver si poco a poco pillo los conceptos y me voy enterando del XQ, y puedo resolver el fallo.

Empezemos con la lectura de la falsh que es lo más fácil, lo 1º que no entiendo, este es un ejemplo que indican en el datasheet para leer la flash:


* This code block will read 1 word of program
* memory at the memory address:
PROG_ADDR_HI : PROG_ADDR_LO
* data will be returned in the variables;
* PROG_DATA_HI, PROG_DATA_LO

BANKSEL     PMADRL ; Select Bank for PMCON registers
MOVLW        PROG_ADDR_LO ;
MOVWF       PMADRL ; Store LSB of address
MOVLW       PROG_ADDR_HI ;
MOVWF       PMADRH ; Store MSB of address
BCF           PMCON1,CFGS ; Do not select Configuration Space
BSF          PMCON1,RD ; Initiate read
NOP                              
NOP
MOVF          PMDATL,W ; Get LSB of word
MOVWF        PROG_DATA_LO ; Store in user location
MOVF         PMDATH,W ; Get MSB of word
MOVWF        PROG_DATA_HI ; Store in user location


La  1ª pregunta, si el 16F1503 es un PIC de 8 bits,  y se direcciona uno de ellos con la dirección PROG_ADDR_HI : PROG_ADDR_LO en la que solo caben 8 bits, XQ hay dos datos  :?: DATA LOW y DATA HIGH  ; o es que en una dirección caben 16 bits de datos . Bueno segun veo en el datasheet 14bits XQ los dos mas altos de DATA H no estan implementados.

Gracias
« Última modificación: 28 de Mayo de 2014, 12:43:08 por JoseLuis2801 »

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: No me entero con la Flash
« Respuesta #1 en: 21 de Mayo de 2014, 12:09:56 »
Citar
Estoy con el PIC 16F1503, que tiene 3,5Kb de RAM.

Tienes 128 Bytes de RAM, 3,5KB son de flash de memoria de programa.

Citar
La  1ª pregunta, si el 16F1503 es un PIC de 8 bits,  y se direcciona uno de ellos con la dirección PROG_ADDR_HI : PROG_ADDR_LO en la que solo caben 8 bits, XQ hay dos datos   DATA LOW y DATA HIGH  ; o es que en una dirección caben 16 bits de datos . Bueno segun veo en el datasheet 14bits XQ los dos mas altos de DATA H no estan implementados.

Si es de 8 bits, eso significa que los registros de RAM son de 8 bits, los de flash de programa son de 14 bits como es toda la serie 16f.

Cuando hay que escribir datos mayores de 8 bits se escriben en dos registros, porque evidentemente en uno solo no cogen.

Desconectado JoseLuis2801

  • PIC16
  • ***
  • Mensajes: 168
Re: No me entero con la Flash
« Respuesta #2 en: 21 de Mayo de 2014, 14:56:35 »
Citar
Estoy con el PIC 16F1503, que tiene 3,5Kb de RAM.

Tienes 128 Bytes de RAM, 3,5KB son de flash de memoria de programa.

Así es , es que se me fue la olla. :oops:  Aunque no se si 2Kb de flash, bueno eso no importa ahora.

Vale el no. de bits se refiere a los bits de las palabras de la RAM, OK.

Ok, vale ahora creo que ya se el XQ del error. Por lo menos se de uno que he cometido...........

Y si yo estoy trantando con datos de 8 bits y me sobran los otros 6, cuando escribo en la Flash, que hago tengo que escribir tb el data alto, tendré que inventarme un dato que realmente no voy a necesitar verdad  :?:  Bueno un 0 a todos los datos altos y ya está.

Te quiero decir, siempre debe haber un valor data H aunque yo no lo utilice.

Ah, que significa esto ? :

LOOP
                      MOVIW      FSR0++ ; Load first data byte into lower
                      MOVWF      PMDATL ;
                      MOVIW      FSR0++ ; Load second data byte into upper
                      MOVWF      PMDATH

esto de la rutina de escritura como sabrás, bueno, los dos mases esos, que significan  :?:, teoricamente, el 1º es FSRL , y el 2º FSRH , pero han escrito lo mismo 2 mases :roll: :roll:

Gracias







Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: No me entero con la Flash
« Respuesta #3 en: 21 de Mayo de 2014, 15:20:49 »
Citar
Aunque no se si 2Kb de flash, bueno eso no importa ahora.

Son 2 K pero como son de 14bits, si se pusieran en KB de 8bits te saldrian los 3,5KB, suelen dar la capacidad de la memoria flash en KB (8bit) y en KWords (14bits).

Citar
Y si yo estoy trantando con datos de 8 bits y me sobran los otros 6, cuando escribo en la Flash, que hago tengo que escribir tb el data alto, tendré que inventarme un dato que realmente no voy a necesitar verdad    Bueno un 0 a todos los datos altos y ya está.

No se si entiendo lo que dices  :lol: ¿Te refieres a escribir datos de 10bits? ¿Que te sobran 6 del mas alto? pues los pones a 0 para escribir 1023=3FF

movlw   0XFF
mowf     BAJO
movlw   0X03
mowf     ALTO

Ya tienes un numero de 10bits en dos Bytes de 8bits.

Citar
Ah, que significa esto ? :

El FSR es para direccionar la RAM, si no recuerdo mal, pones una direccion, la lees, incrementas ese contador y lees la siguiente posicion, es para leer bloques de datos de RAM, yo no suelo trabajar con el direccionamiento del FSR, en mis programas es muy raro que tenga bloques de datos muy grandes.

Desconectado JoseLuis2801

  • PIC16
  • ***
  • Mensajes: 168
Re: No me entero con la Flash
« Respuesta #4 en: 21 de Mayo de 2014, 18:14:39 »
Ah vale, seria por eso por lo que yo lei en alguna WEB 3,5kB, claro, son 2K de palabras de 14 bytes. Perfecto.

Bueno no de 10 bits, sino  me refieria a eso exactamente a datos de 8 bits, vale al resto 0 y ya esta, formato 00 XX, OK.

Al tercer parrafo me refieria a que significan los dos mases , ++ ?

Gracias

Yo creo que me va a funcionar a la 1ª ahora la escritura. pero puedo obviar yo tb el FSR ? son solo 5 palabras de 14 bits.  :shock:
Bueno ya pondre la rutina de escritura, y a ver luego como se podria hacer para evitar el FSR.

Ya me voy enterando, :-/,  es que hacia mucho que no programaba XD.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: No me entero con la Flash (ya mejor)
« Respuesta #5 en: 22 de Mayo de 2014, 12:29:09 »
Pagina 262 del datasheet:

MOVIW Move INDFn to W
Syntax: [ label ] MOVIW ++FSRn
[ label ] MOVIW --FSRn
[ label ] MOVIW FSRn++
[ label ] MOVIW FSRn--
[ label ] MOVIW k[FSRn]
Operands: n  [0,1]
mm  [00,01, 10, 11]
-32  k  31
Operation: INDFn  W
Effective address is determined by
• FSR + 1 (preincrement)
• FSR - 1 (predecrement)
• FSR + k (relative offset)
After the Move, the FSR value will be
either:
• FSR + 1 (all increments)
• FSR - 1 (all decrements)
• Unchanged
Status Affected: Z
Mode Syntax mm
Preincrement ++FSRn 00
Predecrement --FSRn 01
Postincrement FSRn++ 10
Postdecrement FSRn-- 11
Description: This instruction is used to move data
between W and one of the indirect
registers (INDFn). Before/after this
move, the pointer (FSRn) is updated by
pre/post incrementing/decrementing it.
Note: The INDFn registers are not
physical registers. Any instruction that
accesses an INDFn register actually
accesses the register at the address
specified by the FSRn.
FSRn is limited to the range 0000h -
FFFFh. Incrementing/decrementing it
beyond these bounds will cause it to
wrap-around.
MOVLB Move literal to BSR
Syntax: [ label ] MOVLB k
Operands: 0  k  31
Operation: k  BSR
Status Affected: None
Description: The 5-bit literal ‘k’ is loaded into the

¿Seguro que necesitas complicarte tanto la vida? A veces las cosas son mas faciles de lo que parecen, y a veces somos nosotros los que las complicamos  :lol: :lol:

Desconectado JoseLuis2801

  • PIC16
  • ***
  • Mensajes: 168
Re: No me entero con la Flash (ya mejor)
« Respuesta #6 en: 22 de Mayo de 2014, 15:05:10 »
eSPERA xdxd QUE HE PERDIDO EL MALETIN DONDE TENIA EL PROGRAMA ESTE DEL PIC 16F1503, Y AHORA TENGO QUE VOLVER A HACERLO TODO, SUERTE QUE PUSE BASTANTE AQUI COMO LO EL RELOJ A 4MHZ E INICIALICACIONES DE LOS PUERTOS.

Y ASI  NO TENGO QUE VOLVER EL DATASHEET EN RELACIONA ESOS TEMAS.


BIEN

COPIAR Y PEGAR

CUANDO LLEGUE A LA ESCRITURA wr DE LA FLASH , PREGUNTO.......................

GRACIAS


Desconectado JoseLuis2801

  • PIC16
  • ***
  • Mensajes: 168
Re: LA ESCRITURA EN LA FLASH , NO ME SALE
« Respuesta #7 en: 28 de Mayo de 2014, 14:56:08 »
He hecho este pequeño programa para escribir un valor en la memo flash, pero no se que pasa que se queda el PIC colgado al escribir  en la Flash.
Yo lo veo  xq los leds que hay en el puerto A, LATA,0 Y LATA,1  ,  en la etiqueta INIC en la linea 121, se encienden los  dos seg., se apagan, ejecutará CALL WRFlash, pero ya no regresa .  Por que ?




Código: ASM
  1. w               EQU             0h
  2.         f               EQU             1h
  3.  
  4.         LIST            P=16F1503
  5.         INCLUDE     <P16f1503.INC>
  6.  
  7. ;;;;; 4 Mhz
  8.  
  9.         CONT    EQU     20H
  10.         CONTMAX EQU     72H
  11.         CONTMIN EQU     73H
  12.         RET1    EQU     23H
  13.         RET2    EQU     24H
  14.         RET3    EQU     25H
  15.         RET1I   EQU     2CH
  16.         RET2I   EQU     2DH
  17.         RET3I   EQU     2EH
  18.         INDI    EQU     2FH
  19.         INDII   EQU     30H
  20.         CONTI   EQU     31H
  21.         CONTMAXI EQU    7AH
  22.         CONTMINI        EQU     7BH    
  23.         CONTMAX EQU     72H
  24.         CONTMIN EQU     73H
  25.  
  26.  
  27. HDATA_ADDR EQU  74H    
  28.  
  29.                         ORG             00H
  30.                         GOTO    INICIALIZACION
  31.                         ORG     04H
  32.                         GOTO    ISR
  33.  
  34. ;;;;;;;         INICIALIZACION
  35.  
  36. INICIALIZACION   NOP
  37.  
  38.                         BANKSEL CONTMIN
  39.                         MOVLW   3H
  40.                         MOVWF   CONTMIN
  41.  
  42.                         MOVLW   0H
  43.                         MOVWF   HDATA_ADDR             
  44.  
  45.  
  46.  
  47.          BANKSEL   OSCCON   ;; RELOJ A 4MHZ  
  48.          MOVLW   6AH
  49.          MOVWF   OSCCON
  50.  
  51.          BANKSEL   PORTA
  52.                 CLRF    HDATA_ADDR
  53.          CLRF   PORTA
  54.          BANKSEL   LATA
  55.          CLRF   LATA              
  56.          BANKSEL   ANSELA         ; Puerto A  
  57.          CLRF   ANSELA
  58.          BANKSEL   TRISA
  59.          MOVLW   0Ch            
  60.          MOVWF   TRISA
  61.  
  62.          BANKSEL   PORTC
  63.          CLRF   PORTC
  64.          BANKSEL   LATC
  65.          CLRF   LATC              
  66.          BANKSEL   ANSELC         ; Puerto C   SIN RES. POL.
  67.          CLRF   ANSELC
  68.          BANKSEL   TRISC
  69.          CLRF           TRISC
  70.  
  71.          banksel   OPTION_REG
  72.          CLRF   OPTION_REG
  73.          movlw   0x07
  74.          movwf   OPTION_REG
  75.  
  76.          BANKSEL   WPUA
  77.          MOVLW   0Ch            
  78.          MOVWF   WPUA          ;ACTIVADA, BIT 2, 3
  79.                 BANKSEL PORTA
  80.  
  81.                  BANKSEL   INTCON   ; Rut. servicio interrupciones
  82.          CLRF   INTCON
  83.          MOVLW   0X88
  84.          MOVWF   INTCON   ;PONER A 1 GIE e IOCIE
  85.          BANKSEL   IOCAN
  86.          CLRF   IOCAN
  87.          BSF      IOCAN,2   ;  a 1 IOCAN2              
  88.  
  89.                 BANKSEL PORTA  
  90.                 GOTO    INIC
  91.                        
  92. ;;;;;;;;        SUBRUTINAS
  93.  
  94. DEMORAI         MOVLW   0Dh             ;  CARGA VARIABLES DEMORA
  95.                         MOVWF   RET1I
  96.                         MOVLW   00h
  97.                         MOVWF   RET2I
  98. DEC1I           DECFSZ  RET2I   ;  RETARDO DE 10ms
  99.                         GOTO    DEC1I     ; valores 0Dh y 0h
  100.                         DECFSZ  RET1I    ;  2 BUCLES
  101.                         GOTO    DEC1I
  102.                         RETURN
  103.  
  104. DEMORA100msI    MOVLW   83h             ;  CARGA VARIABLES DEMORA
  105.                         MOVWF   RET1I
  106.                         MOVLW   0h
  107.                         MOVWF   RET2I
  108. DEC3I           DECFSZ  RET2I    ;  RETARDO DE 100ms
  109.                         GOTO    DEC3I     ; valores 0Dh y 40h
  110.                         DECFSZ  RET1I    ;  2 BUCLES
  111.                         GOTO    DEC3I
  112.                         RETURN
  113.  
  114. DEMORA500msI    CALL    DEMORA100msI
  115.                         CALL    DEMORA100msI
  116.                         CALL    DEMORA100msI
  117.                         CALL    DEMORA100msI
  118.                         CALL    DEMORA100msI
  119.                         RETURN
  120.  
  121. INIC            BSF LATA,1
  122.                         BSF     LATA,0
  123.                         CALL    DEMORA500msI
  124.                         CALL    DEMORA500msI
  125.                         CALL    DEMORA500msI
  126.                         CALL    DEMORA500msI
  127.                 BCF LATA,1
  128.                         BCF     LATA,0 
  129.  
  130.                         CALL    WRFLASH
  131. INIC1           BCF LATA,1
  132.                         BSF     LATA,0
  133.  
  134.                         GOTO    INIC1
  135.  
  136. ISR                     NOP
  137.                         BTFSC   PORTA,2
  138.                         GOTO    RETISR
  139.                         CALL    DEMORA500msI
  140.                         CALL    DEMORA500msI
  141.                         BTFSC   PORTA,2
  142.                         GOTO    RETISR
  143. ISR1            BTFSS   PORTA,2
  144.                         GOTO    ISR1
  145.                         CALL    DEMORAI
  146.                         BTFSS   PORTA,2
  147.                         GOTO    ISR1
  148.                         CALL            RDFLASH
  149.                         CALL    DEMORA500msI
  150.                         CALL    DEMORA500msI
  151.                         MOVLW   CONTMAX
  152.                         MOVWF   PORTA  
  153.                                 CALL    DEMORA500msI
  154.                         CALL    DEMORA500msI
  155.                         CALL    DEMORA500msI
  156.                         CALL    DEMORA500msI
  157.  
  158.                         CALL    DEMORA500msI
  159.                         CALL    DEMORA500msI
  160.  
  161. RETISR          NOP
  162.                 BANKSEL         IOCAF
  163.                 BCF             IOCAF,2                      
  164.                         RETFIE 
  165.  
  166. RDFLASH         NOP            
  167.                         BANKSEL PMADRH
  168.                         MOVLW   00H
  169.                         MOVWF   PMADRH
  170.                         MOVLW   0XA0
  171.                         MOVWF   PMADRL 
  172.                         BCF             PMCON1,CFGS
  173.                         BSF             PMCON1,RD
  174.                         NOP
  175.                         NOP
  176.                         MOVF    PMDATL,0
  177.                         MOVWF   CONTMAX
  178.                         MOVF    PMDATH,0
  179.                         MOVWF   HDATA_ADDR
  180.                         RETURN
  181.  
  182.  
  183. WRFLASH         BCF             INTCON,GIE
  184.                         BANKSEL PMADRH
  185.                         MOVLW   0H
  186.                         MOVWF   PMADRH
  187.                         MOVLW   0XA0
  188.                         MOVWF   PMADRL
  189.                         MOVLW           CONTMIN
  190.                         MOVWF   FSR0L
  191.                         MOVLW   HDATA_ADDR
  192.                         MOVWF   FSR0H  
  193.                         BCF             PMCON1,CFGS
  194.                         BCF             PMCON1,FREE
  195.                         BSF             PMCON1,WREN
  196.                         BSF             PMCON1,LWLO
  197.                         MOVIW   FSR0++
  198.                         MOVWF   PMDATL
  199.                         MOVIW   FSR0++
  200.                         MOVWF   PMDATH
  201.                         MOVLW   55H
  202.                         MOVWF   PMCON2
  203.                         MOVLW   0AAH
  204.                         MOVWF   PMCON2
  205.                         BSF             PMCON1,WR
  206.                         NOP
  207.                         NOP
  208.                         BCF             PMCON1,LWLO
  209.                         MOVLW   55H
  210.                         MOVWF   PMCON2
  211.                         MOVLW   0AAH
  212.                         MOVWF   PMCON2
  213.                         BSF             PMCON1,WR
  214.                         NOP
  215.                         NOP
  216.                         BSF             INTCON,GIE
  217.                         RETURN
  218.  
  219.  
  220. FIN                     NOP
  221.                         END

Gracias
« Última modificación: 28 de Mayo de 2014, 15:15:39 por JoseLuis2801 »

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: LA ESCRITURA EN LA FLASH , NO ME SALE
« Respuesta #8 en: 28 de Mayo de 2014, 15:46:01 »
Nunca he trabajado con esta gama de PICs, pero aqui:

183.WRFLASH      
      INTCON,GIE184.         
                                 BANKSEL   PMADRH

Cambias de banco a BANKSEL PMADRH, ¿No tendrias que volver a BANK 0?


Desconectado JoseLuis2801

  • PIC16
  • ***
  • Mensajes: 168
Re: LA ESCRITURA EN LA FLASH , NO ME SALE
« Respuesta #9 en: 28 de Mayo de 2014, 19:42:33 »
sI CORRECTO AHORA BIEN.

Pero sigo y problema , se supon que escribo en la direccion de la flash 07f0h, un 3 que queda en el byte bajo.

Y luego mas tarde lo leo, pues no no funciona, XQ en la pag. 161, los 2 leds no se encienden indicando un 3. Sin embargo , si le quito el punto y coma a las  lineas 157 a 159, para uqe estas san operativas, si se encienden, tofo bnien entonces, no se que pasa, no escribe no lee................

Código: ASM
  1. w               EQU             0h
  2.         f               EQU             1h
  3.  
  4.         LIST            P=16F1503
  5.         INCLUDE     <P16f1503.INC>
  6.  
  7. ;;;;; 4 Mhz
  8.  
  9.         CONT    EQU     20H
  10.         CONTMAX EQU     72H
  11.         CONTMIN EQU     73H
  12.         RET1    EQU     77H
  13.         RET2    EQU     78H
  14.         RET3    EQU     79H
  15.         RET1I   EQU     74H
  16.         RET2I   EQU     75H
  17.         RET3I   EQU     76H
  18.         INDI    EQU     2FH
  19.         INDII   EQU     30H
  20.         CONTI   EQU     31H
  21.         CONTMAXI EQU    7AH
  22.         CONTMINI        EQU     7BH    
  23.  
  24.  
  25. HDATA_ADDR EQU  74H    
  26.  
  27.                         ORG             00H
  28.                         GOTO    INICIALIZACION
  29.                         ORG     04H
  30.                         GOTO    ISR
  31.  
  32. ;;;;;;;         INICIALIZACION
  33.  
  34. INICIALIZACION   NOP
  35.  
  36.                         BANKSEL CONTMIN
  37.                         MOVLW   3H
  38.                         MOVWF   CONTMIN
  39.  
  40.                         MOVLW   0H
  41.                         MOVWF   HDATA_ADDR             
  42.  
  43.  
  44.  
  45.          BANKSEL   OSCCON   ;; RELOJ A 4MHZ  
  46.          MOVLW   6AH
  47.          MOVWF   OSCCON
  48.  
  49.          BANKSEL   PORTA
  50.                 CLRF    HDATA_ADDR
  51.          CLRF   PORTA
  52.          BANKSEL   LATA
  53.          CLRF   LATA              
  54.          BANKSEL   ANSELA         ; Puerto A  
  55.          CLRF   ANSELA
  56.          BANKSEL   TRISA
  57.          MOVLW   0Ch            
  58.          MOVWF   TRISA
  59.  
  60.          BANKSEL   PORTC
  61.          CLRF   PORTC
  62.          BANKSEL   LATC
  63.          CLRF   LATC              
  64.          BANKSEL   ANSELC         ; Puerto C   SIN RES. POL.
  65.          CLRF   ANSELC
  66.          BANKSEL   TRISC
  67.          CLRF           TRISC
  68.  
  69.          banksel   OPTION_REG
  70.          CLRF   OPTION_REG
  71.          movlw   0x07
  72.          movwf   OPTION_REG
  73.  
  74.          BANKSEL   WPUA
  75.          MOVLW   0Ch            
  76.          MOVWF   WPUA          ;ACTIVADA, BIT 2, 3
  77.                 BANKSEL PORTA
  78.  
  79.                  BANKSEL   INTCON   ; Rut. servicio interrupciones
  80.          CLRF   INTCON
  81.          MOVLW   0X88
  82.          MOVWF   INTCON   ;PONER A 1 GIE e IOCIE
  83.          BANKSEL   IOCAN
  84.          CLRF   IOCAN
  85.          BSF      IOCAN,2   ;  a 1 IOCAN2              
  86.  
  87.                 BANKSEL PORTA  
  88.                 GOTO    INIC
  89.                        
  90. ;;;;;;;;        SUBRUTINAS
  91.  
  92. DEMORAI         MOVLW   0Dh             ;  CARGA VARIABLES DEMORA
  93.                         MOVWF   RET1I
  94.                         MOVLW   00h
  95.                         MOVWF   RET2I
  96. DEC1I           DECFSZ  RET2I   ;  RETARDO DE 10ms
  97.                         GOTO    DEC1I     ; valores 0Dh y 0h
  98.                         DECFSZ  RET1I    ;  2 BUCLES
  99.                         GOTO    DEC1I
  100.                         RETURN
  101.  
  102. DEMORA100msI    MOVLW   83h             ;  CARGA VARIABLES DEMORA
  103.                         MOVWF   RET1I
  104.                         MOVLW   0h
  105.                         MOVWF   RET2I
  106. DEC3I           DECFSZ  RET2I    ;  RETARDO DE 100ms
  107.                         GOTO    DEC3I     ; valores 0Dh y 40h
  108.                         DECFSZ  RET1I    ;  2 BUCLES
  109.                         GOTO    DEC3I
  110.                         RETURN
  111.  
  112. DEMORA500msI    CALL    DEMORA100msI
  113.                         CALL    DEMORA100msI
  114.                         CALL    DEMORA100msI
  115.                         CALL    DEMORA100msI
  116.                         CALL    DEMORA100msI
  117.                         RETURN
  118.  
  119. DEMORA100ms     MOVLW   83h             ;  CARGA VARIABLES DEMORA
  120.                         MOVWF   RET1
  121.                         MOVLW   0h
  122.                         MOVWF   RET2
  123. DEC3            DECFSZ  RET2    ;  RETARDO DE 100ms
  124.                         GOTO    DEC3     ; valores 0Dh y 40h
  125.                         DECFSZ  RET1    ;  2 BUCLES
  126.                         GOTO    DEC3
  127.                         RETURN
  128.  
  129. DEMORA500ms     CALL    DEMORA100ms
  130.                         CALL    DEMORA100ms
  131.                         CALL    DEMORA100ms
  132.                         CALL    DEMORA100ms
  133.                         CALL    DEMORA100ms
  134.                         RETURN
  135.  
  136. INIC            BSF PORTA,1
  137.                         BSF     PORTA,0
  138.                         CALL    DEMORA500msI
  139.                         CALL    DEMORA500msI
  140.                         CALL    WRFLASH
  141.                         BANKSEL LATA
  142.                         BCF     LATA,1
  143.                         BCF             LATA,0 
  144.                         CALL    DEMORA500msI
  145.                         CALL    DEMORA500msI
  146.  
  147.                         BSF     LATA,1
  148.                         BSF             PORTA,0
  149.                         CALL    DEMORA500ms
  150.                         CALL    DEMORA500ms
  151.                         BCF     LATA,1
  152.                         BCF             LATA,0
  153.                         CALL    DEMORA500ms
  154.                         CALL    DEMORA500ms
  155.                         CALL    RDFLASH
  156.                         BANKSEL LATA
  157.                 ;       MOVLW   3H
  158.                 ;       MOVWF   CONTMIN
  159.         ;               CLRF    W
  160.                         MOVF    CONTMIN,0
  161.                         MOVWF   LATA
  162.  
  163. INIC1           NOP
  164.                         GOTO INIC1
  165.  
  166. ISR                     NOP
  167.                         BTFSC   PORTA,2
  168.                         GOTO    RETISR
  169.                         CALL    DEMORA500msI
  170.                         CALL    DEMORA500msI
  171.                         BTFSC   PORTA,2
  172.                         GOTO    RETISR
  173. ISR1            BTFSS   PORTA,2
  174.                         GOTO    ISR1
  175.                         CALL    DEMORAI
  176.                         BTFSS   PORTA,2
  177.                         GOTO    ISR1
  178.         ;               CALL            RDFLASH
  179.                         CALL    DEMORA500msI
  180.                         CALL    DEMORA500msI
  181.                         MOVLW   CONTMAX
  182.                         MOVWF   PORTA  
  183.                                 CALL    DEMORA500msI
  184.                         CALL    DEMORA500msI
  185.                         CALL    DEMORA500msI
  186.                         CALL    DEMORA500msI
  187.  
  188.                         CALL    DEMORA500msI
  189.                         CALL    DEMORA500msI
  190.  
  191. RETISR          NOP
  192.                 BANKSEL         IOCAF
  193.                 BCF             IOCAF,2                      
  194.                         RETFIE 
  195.  
  196. RDFLASH         NOP            
  197.                         BANKSEL PMADRH
  198.                         MOVLW   07H
  199.                         MOVWF   PMADRH
  200.                         MOVLW   0XF0
  201.                         MOVWF   PMADRL 
  202.                         BCF             PMCON1,CFGS
  203.                         BSF             PMCON1,RD
  204.                         NOP
  205.                         NOP
  206.                         MOVF    PMDATL,0
  207.                         BANKSEL CONTMIN
  208.                         MOVWF   CONTMIN
  209.                         BANKSEL PMDATH
  210.                         MOVF    PMDATH,0
  211.                         MOVWF   HDATA_ADDR
  212.                         RETURN
  213.  
  214.  
  215. WRFLASH         BCF             INTCON,GIE
  216.                         BANKSEL PMADRH
  217.                         MOVLW   07H
  218.                         MOVWF   PMADRH
  219.                         MOVLW   0XF0
  220.                         MOVWF   PMADRL
  221.                         MOVLW           CONTMIN
  222.                         MOVWF   FSR0L
  223.                         MOVLW   HDATA_ADDR
  224.                         MOVWF   FSR0H  
  225.                         BCF             PMCON1,CFGS
  226.                         BCF             PMCON1,FREE
  227.                         BSF             PMCON1,WREN
  228.                         BSF             PMCON1,LWLO
  229.                         MOVIW   FSR0++
  230.                         MOVWF   PMDATL
  231.                         MOVIW   FSR0++
  232.                         MOVWF   PMDATH
  233.                         MOVLW   55H
  234.                         MOVWF   PMCON2
  235.                         MOVLW   0AAH
  236.                         MOVWF   PMCON2
  237.                         BSF             PMCON1,WR
  238.                         NOP
  239.                         NOP
  240.                         BCF             PMCON1,LWLO
  241.                         MOVLW   55H
  242.                         MOVWF   PMCON2
  243.                         MOVLW   0AAH
  244.                         MOVWF   PMCON2
  245.                         BSF             PMCON1,WR
  246.                         NOP
  247.                         NOP
  248.                         BSF             INTCON,GIE
  249.  
  250.                         RETURN
  251.  
  252.  
  253. FIN                     NOP
  254.                         END


Gracias
« Última modificación: 28 de Mayo de 2014, 19:50:21 por JoseLuis2801 »

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: LA ESCRITURA EN LA FLASH , NO ME SALE
« Respuesta #10 en: 29 de Mayo de 2014, 05:48:34 »
Es que si eliminas las lineas donde escribes, pues cuando lo leas no tendras nada ¿No?


                                                   BANKSEL   LATA
157.      ;   MOVLW   3H
158.      ;   MOVWF   CONTMIN    ;Aqui escribes el numero 3H
159.                    ;   CLRF   W

Desconectado JoseLuis2801

  • PIC16
  • ***
  • Mensajes: 168
Re: LA ESCRITURA EN LA FLASH , NO ME SALE
« Respuesta #11 en: 29 de Mayo de 2014, 07:01:17 »
Claro , es que es para ver si todo OK, a ver me explico.

En la linea 140, llamo a la rut. de escritura de ese valor  3.  Ya la variable contmin esta inicializada ántes , al principio, con ese valor 3. (lineas 37 y 38)

Luego en 155 llamo a la RDFlash para que me retorne ese valor de contmin.  por lo tanto no tengo XQ hacer operativas esas 3 lineas.
pues algo pasa pero los dos leds no se encienden al final de toda la secuencia claro está.

Y para comprobar, le queito el punto y coma  a esas 3 para hacerlas operativas, y si se encineden esos 2 leds, osea esta bien todo , pero algo ocurre en la escritura, en la  lectura o ambas. :roll:    Estan bien ?   

A ver si se va a resetear el valor de contmin y vuelve a 0 no se por donde.  
« Última modificación: 29 de Mayo de 2014, 07:09:04 por JoseLuis2801 »


 

anything