PIC18F2550 y DS1307 i2c RTC MPLAB código de ensamblaje. Tienes que hacer un bucle por segundos, minutos, horas.

0

Código de ensamblaje PIC18F2550 y DS1307 i2c RTC MPLAB.

Estoy usando un PIC18f2550 para obtener la hora, la fecha, etc. del DS1307.

  • Puedo obtener los segundos, los minutos, las horas, etc., LLAMANDO repetidamente GET_TIME con una nueva dirección de lectura 0 a 6.
  • No puedo obtener todos los Parámetros sec, min, hrs, etc en una lectura como se muestra a continuación en Read_Clk.

¿Podría alguien decirme qué estoy haciendo mal? Usándolo como es, solo devuelve "Segundos" en cada uno de los segundos, minutos, horas, etc ... He publicado una imagen debido a las líneas desplazadas.

WAIT_PIR_SSPIF: 
    BTFSS   PIR1,SSPIF
    GOTO    WAIT_PIR_SSPIF 
    RETURN

WRITE_CLK:    ;Write data to slave.; //Write data to I2C bus
    BCF     PIR1,SSPIF
    MOVFF   WRITE_DATA,SSPBUF   
CheckWrite: 
    BTFSS   PIR1,SSPIF   
    GOTO    CheckWrite  
    RETURN

GET_TIME:       
    CALL     START_CLK
    MOVLW    b'11010000'   
    MOVWF    WRITE_DATA 
    CALL     WRITE_CLK      
    MOVLW    b'00000000'           ;ADDRESS OF TIME TO READ 
    MOVWF    WRITE_DATA 
    CALL     WRITE_CLK
    CALL     DELAY_2nd  
    CALL     RESTART_CLK          
    MOVLW    b'11010001'   
    MOVWF    WRITE_DATA
    CALL     WRITE_CLK  
    BSF      SSPCON2,ACKDT         ;SAME AS "NACK"
    CALL     DELAY_2nd  
    CALL     Read_Clk                       ;CALLS READ_CLK
    CALL     STOP_CLK   
    CALL     DELAY_2nd    
    GOTO     GET_TIME

Read_Clk:             ; //Read data from I2C bus
    BSF     SSPCON2,RCEN
    BCF     PIR1,SSPIF  
    CALL    WAIT_PIR_SSPIF
    MOVFF   SSPBUF,SECONDS 
    BSF     SSPCON2,ACKEN   
    BCF     PIR1,SSPIF  
    CALL    WAIT_PIR_SSPIF
    MOVFF   SSPBUF,MINUTES  
    BSF     SSPCON2,ACKEN   
    BCF     PIR1,SSPIF  
    CALL    WAIT_PIR_SSPIF  
    MOVFF   SSPBUF,HOURS
    BSF     SSPCON2,ACKEN   
    BCF     PIR1,SSPIF  
    CALL    WAIT_PIR_SSPIF
    MOVFF   SSPBUF,DAYS
    BSF     SSPCON2,ACKEN   
    BCF     PIR1,SSPIF  
    CALL    WAIT_PIR_SSPIF  
    RETURN

DELAY_2nd:
    MOVLW   b'00000100'
    MOVWF   COUNT_DOWN
DELAY_2:

    
pregunta user66377

1 respuesta

-1

Después de pasar muchas horas en internet, he encontrado una respuesta a mi propia pregunta. A continuación se muestra el código actualizado que en algunas partes reemplaza al código anterior. PIC18F2550 y DS1307 i2c RTC MPLAB código de ensamblaje.  Código utilizado para obtener la hora, fecha, etc. de DS1307.

    
respondido por el user66377

Lea otras preguntas en las etiquetas