I2C : plantage à un endroit étrange
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

I2C : plantage à un endroit étrange



  1. #1
    Toufinet

    I2C : plantage à un endroit étrange


    ------

    Bonjour à tous,

    Mon PIC16F887 communique avec un capteur de température TMP100 via I2C.

    Lors de la lecture de la température, le PIC "plante" à un endroit étrange : au moment où lui-même envoie un ACK.

    Code de l'envoie du ACK :
    Code:
    I2C_ack
    	bank1				  ; passer banque 1
    	bcf		SSPCON2,ACKDT ; le bit qui sera envoyé vaudra « 0 »
    	bsf		SSPCON2,ACKEN ; lancer l’acknowledge (= ACKDT = 0 = ACK)
    I2C_ack2
    	btfsc	SSPCON2,ACKEN ; tester si ACK terminé
    	goto	I2C_ack2	  ; non, attendre
    	bank0				 ; repasser banque 0
    	return
    Il plante dans la boucle de vérification de l'ack terminé.
    Je trouve ça vraiment étrange, car si j'ai bien tout compris, lorsque le PIC envoie un ACK, il ne fait strictement aucunne vérification ... il envoie son ACK, point final, non ?

    Pourquoi le programme planterait à cet dans cette boucle ???

    Voici le code pour lire la température :
    Code:
    LM73_Read_Tc
    	movlw	LM73_ADDR
    	movwf	SLAVE
    	movlw	LM73_Tc_REGISTER
    	movwf	OCTET
    	call	I2C_start
    	call	I2C_adress_write
    	call	I2C_check
    	call	I2C_send		; on envoie l'adresse du registre de température
    	call	I2C_check
    	call	I2C_start		; Repeat Start
    	call	I2C_adress_read
    	call	I2C_check
    	call	I2C_read		; On lit les bits 15 -> 8
    	movf	SSPBUF, 0;
    	movwf	Tc
    	call	I2C_ack			; on envoit un ACK
    	call	clear_afficheur
    	call	I2C_read		; on lit les bits 7 -> 0
    	movf	SSPBUF, 0;
    	movwf	Tc+1
    	call	I2C_noack
    	call	I2C_stop
    	return
    Et ça plante lors du "call I2C_ack" ... incompréhensable !

    -----

  2. #2
    Toufinet

    Re : I2C : plantage à un endroit étrange

    Petites infos supplémentaires :
    Le programme plante aussi sur l'envoi de noack.

    Pourtant, il ne plante pas lorsque les autres composants envoient des ACK ... je n'y comprend rien !

Discussions similaires

  1. image "au bon endroit" dans LaTeX
    Par invite42d0c639 dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 09/06/2010, 23h33
  2. I2c
    Par Olfox dans le forum Électronique
    Réponses: 16
    Dernier message: 03/08/2007, 23h11
  3. Le meilleur endroit où vivre
    Par invitea5d4c8d6 dans le forum Environnement, développement durable et écologie
    Réponses: 1
    Dernier message: 01/08/2006, 07h03
  4. I2c
    Par inviteacb3e291 dans le forum Électronique
    Réponses: 5
    Dernier message: 17/06/2005, 14h03
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...