Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Не могу считать данные с i2c

Пт окт 27, 2023 13:31:17

Всем доброго времени суток. Подскажите, пожалуйста, в чём проблема. Написал код для i2c между pic18f4520 и ds1307. В протеусе в дебагере всё показывает как надо: секунды, минуты, часы - а на индикатор ничего не выводит, светится 0. Код приёма такой:

Btfsc sspstat, 2
Bra $-2
Bsf sspcon2, rcen
Btfss pir1, sspif
Bra $-2
Call nackbit
Movff sspbuf, secundi
;:::::::::::::::::
Nackbit
Bsf sspcon2, ackdt
Bsf sspcon2, acken
Btfss pir1, sspif
Bra $-2
Bcf pir1, sspif
Return

Правильно я считываю секунды из буферного регистра?

Re: Не могу считать данные с i2c

Сб окт 28, 2023 06:17:28

это весь код?

Re: Не могу считать данные с i2c

Вс окт 29, 2023 14:10:10

Весь код такой

Код:
;;;;;;;;;;инициализация
        MOVLW   B'00011000'
   MOVWF   TRISC
   MOVLW   B'00101000'
   MOVWF   SSPCON1
   MOVLW   0X80
   MOVWF   SSPSTAT
   MOVLW   0X09         
   MOVWF   SSPADD
main   
;;;;;;;;;;;;;;;;;передача
        CALL   BSTART
   MOVLW   0XD0
   CALL   WRITE_I2C
   MOVLW   0X00
   CALL   WRITE_I2C
   MOVLW   0X00
   CALL   WRITE_I2C
   CALL   BSTOP
   
   CALL   DELAY1
   CALL   DELAY1
   
;;;;;;;;;;;;;;;приём
start   
        CALL   BSTART
   MOVLW   0XD0
   CALL   WRITE_I2C
   MOVLW   0X00
   CALL   WRITE_I2C
   CALL   RESTARTBIT
   MOVLW   0XD1
   CALL   WRITE_I2C
   BTFSC   SSPSTAT,2
   BRA   $-2
   BSF     SSPCON2, RCEN      
                         
   BTFSS   PIR1, SSPIF      
   BRA     $-2
   BCF   PIR1, SSPIF    
   MOVFF   SSPBUF, AA
   CALL   ACKBIT
   BSF     SSPCON2, RCEN      
                        
   BTFSS   PIR1, SSPIF      
   BRA     $-2
   BCF   PIR1, SSPIF      
   MOVFF   SSPBUF, MSB
   
   CALL   NACKBIT
   CALL   BSTOP

   CALL   DISP
   
   GOTO   start
   
WRITE_I2C
   MOVWF   SSPBUF
   CALL   WAITMSSP
   RETURN
BSTART   BSF   SSPCON2,SEN
   CALL   WAITMSSP
   RETLW   0
RESTARTBIT
   BSF   SSPCON2,RSEN
   CALL   WAITMSSP
   RETURN
BSTOP   BSF   SSPCON2,PEN
   CALL   WAITMSSP
   RETURN
ACKBIT   BCF   SSPCON2,ACKDT
   BSF   SSPCON2,ACKEN
   CALL   WAITMSSP
   RETURN
NACKBIT   BSF   SSPCON2,ACKDT
   BSF   SSPCON2,ACKEN
   CALL   WAITMSSP
   RETURN   
WAITMSSP
   BTFSS   PIR1,SSPIF
   GOTO   WAITMSSP
   NOP
   BCF   PIR1,SSPIF
   RETURN
Ответить