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

Interruption I2C



  1. #1
    Pitch21

    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. Publicité
  3. #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
    Ben ça marche!

  4. #3
    Pitch21

    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

  5. #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...

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

    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 florian85 dans le forum Électronique
    Réponses: 3
    Dernier message: 18/09/2008, 08h33
  2. Interruption C PIC16F877
    Par Melodie Nelson dans le forum Électronique
    Réponses: 2
    Dernier message: 04/10/2007, 23h26
  3. Interruption RB0
    Par Martintin dans le forum Électronique
    Réponses: 5
    Dernier message: 12/04/2007, 11h45
  4. interruption ( timer )
    Par paterson dans le forum Électronique
    Réponses: 0
    Dernier message: 13/03/2007, 20h50
  5. interruption PIC18F
    Par induc dans le forum Électronique
    Réponses: 12
    Dernier message: 19/05/2006, 17h17
Découvrez nos comparatifs produits sur l'informatique et les technologies.