Interruption I2C
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Interruption I2C



  1. #1
    inviteb44153e1

    Interruption I2C


    ------

    Bonjour je ne sais pas si je suis sur le forum adéquat mais j'ai quelques questions sur une interruption I2C programmée en C. Est ce que je peux posé ça ici?

    Pitch

    -----

  2. #2
    f6bes

    Re : Interruption I2C

    Bjr picht....
    "Pose " toujours !! Le modés "redigirent" au bon endroit si cela ne correspond au forum.
    Vas y donc.
    Cordialement

  3. #3
    inviteb44153e1

    Re : Interruption I2C

    En fait j'ai un programme avec une interruption I2C. C'est pour savoir si on est obligé de désactiver l'interruption quand on a tout recu. Voici le code que j'ai dans l'interruption I2C :

    Code:
    switch(TWSR)
        {
            case 0x60:	// Esclave appele en mode ecriture -> ACk est retourne
            			g_TWI_CompteurDonneeRx = 0;
            			break; 
    		            
            case 0x80:	// Reception d'une donnee (un ACK a été envoyé)
            			g_TWI_BufferRx[g_TWI_CompteurDonneeRx] = TWDR;
            			g_TWI_CompteurDonneeRx++;
            		    break;    
            		    
            case 0xA0:  // Reception d'un stop donc validation des donnees
            			break;	   
    					
            case 0xA8:  // Esclave appele en mode lecture -> ACK est retourne 
            			g_TWI_CompteurDonneeTx = 0x00;
            			// on envoi alors une donnee donc pas de break
            			
            case 0xB8:  // envoi d'une donnee, un ACK est envoye
            			TWDR = g_TWI_BufferTx[g_TWI_CompteurDonneeTx];
            			//g_TWI_BufferTx[0] = g_TWI_CompteurDonneeTx;
    					g_TWI_CompteurDonneeTx++;     
    					break;
    					
    		case 0xC0: 	// Reception d'un NACK donc fin de la transmission
    					break;
        }
        
        TWCR = (1<<TWINT) | (1<<TWEA) | (1<<TWEN) | (1<<TWIE);
    Car en fait mon code va bien ( mais il y a surement des erreurs pour l'I2C), mais quand il ya des parasites dans les alentours, mon interruption perd les pedales....

    Merci

  4. #4
    RISC

    Re : Interruption I2C

    PITCH,

    Et si tu nous disais quel micro tu utilises ;=)
    Il semble que ton problème vienne plutot du hardware puisque tu parles de PB de parasites...

  5. A voir en vidéo sur Futura
  6. #5
    inviteb44153e1

    Re : Interruption I2C

    Oups pardon j'avais oublié. L'I2C se fait entre des ATMega 8. Et le compilateur utilisé est CodeVision AVR Standard. J'ai un ATMega8 qui fait master et qui utilise les fcts ttes faites de CodeVision et 2 ATMega 8 en Slave. Les 2 slaves fonctionnent avec interruption.
    POur ce qui est de l'hardware je ne pense pas que cela vienne de la, car j'ai repris le projet et avant il y avait du code deja fait et il n'y a jamais eu de soucis. J'ai du reprendre et j'ai voulu faire avec interruption et depuis voila....
    Donc en gros de temps en temps j'ai l'I2C qui se bloque jusqu'a ce qu'un coup de watchdog me relance un des slaves. Le probleme peut venir des 2slaves...
    J'espere que tt cela vous aidera a regler mon soucis

Discussions similaires

  1. interruption pic18f4620
    Par invite6af9789d dans le forum Électronique
    Réponses: 3
    Dernier message: 18/09/2008, 08h33
  2. Interruption C PIC16F877
    Par invite210e4233 dans le forum Électronique
    Réponses: 2
    Dernier message: 04/10/2007, 23h26
  3. Interruption RB0
    Par invite91a05f0b dans le forum Électronique
    Réponses: 5
    Dernier message: 12/04/2007, 11h45
  4. interruption ( timer )
    Par invite42dae262 dans le forum Électronique
    Réponses: 0
    Dernier message: 13/03/2007, 20h50
  5. interruption PIC18F
    Par invite23732d21 dans le forum Électronique
    Réponses: 12
    Dernier message: 19/05/2006, 17h17
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...