Port partage sur Atmega8
Répondre à la discussion
Affichage des résultats 1 à 24 sur 24

Port partage sur Atmega8



Vue hybride

  1. #1
    bertrandbd

    Question Port partage sur Atmega8

    Bonsoir

    J'essaye d'utiliser sur un atmaga8, les lignes 6&7 du port D qui est partagé avec un comparateur analogique (AIN0 et AIN1). J'aimerai utiliser les lignes 6&7 du Port en entrée discrète et c'est là que j'ai un problème de configuration. D'après ce que j'ai compris de la datasheet, pour utiliser le comparateur analogique, il faut configurer D6 et D7 comme une entrée sans pull up. En fait, je n'arrive pas à savoir s'il est possible d'utiliser D6 et D7 en entrée discrète, comment faire pour passiver le comparateur (positionner ADC suffit-il ) rendre passif le comparateur?)

    Merci

    ps: j'utilise proteus pour simuler un interrupteur sur D7 pour commander une ligne sur D6. Quelle que soit la valeur de D7, la led est toujours allumer. Sur simulateur AVRstudio4, il me semble que le programme fonctionne

  2. #2
    invite7a49d0d5

    Cool Re : Port partage sur Atmega8

    Citation Envoyé par bertrandbd Voir le message
    (...) Sur simulateur AVRstudio4, il me semble que le programme fonctionne
    Bonjour,

    ben on est pas rendus...

    tu reviens si t'es sur que ça fonctionne pas ;O]

    après la simu... tu sais ce que j'en pense...

    mais bonn'semaine za toutes zé tous,
    vede
    ;O]
    ____________
    ...

  3. #3
    invite29971eb1

    Re : Port partage sur Atmega8

    Salut,

    alors si j'ai bien compris tu ne souhaites pas utiliser le comparateur mais utiliser les I/O classiques.

    Si c'est bien le cas, tu n'as rien à faire, configure ton port comme bon te semble (entrée, sortie, pull-up ou non) avec DDRD et PORTD.

    Sur les AVR, les fonctions alternatives sont toujours désactivées. Il faut activer ce dont on a besoin (et non désactiver tout ce qui est inutile, contrairement à d'autres familles)

    Edit: petite exception à ce que je viens de dire, les ports de programmation sont configurés par défaut. Par exemple, sur un Atmega32, il faut décocher le fusible JTAGEN pour pouvoir utiliser le port C en I/O. Mais ça ne rentre pas dans le cadre du programme à proprement parler puisque ça passe par les fuse bits

  4. #4
    mortaurat

    Re : Port partage sur Atmega8

    Citation Envoyé par ftorama Voir le message
    Sur les AVR, les fonctions alternatives sont toujours désactivées. Il faut activer ce dont on a besoin (et non désactiver tout ce qui est inutile, contrairement à d'autres familles)
    Ah bon, quels familles ? =)

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

    Re : Port partage sur Atmega8

    Merci Ftorama pour ta réponse Cela tend à confirmer que le logiciel qui tourne sur le simulateur d'avr studio est correcte. Il faut plutôt que je m'oriente vers la configuration de proteus

    Je vais de nouveau regarder cela de plus près

    Merci à tous

  7. #6
    bertrandbd

    Unhappy Re : Port partage sur Atmega8

    Bonsoir

    Cette fois, le doute n'est plus permis, je n'ai rien compris.

    Sur le montage joint, j'ai :
    - la diode D1 (la plus à droite) est allumée lorsque le switch est
    ouvert (masse) et s'éteint lorsque le switch est fermé.

    - la diode D2 (à gauche de D1) est éteinte lorsque le switch est
    ouvert (+Vcc) et s'allume lorsque le switch est fermé.

    - la diode D3 (à gauche de D2) est éteinte lorsque le switch est
    ouvert (+Vcc par le pull up) et s'allume lorsque le switch est fermé.

    - la diode D7 (la plus à gauche) est éteinte lorsque le switch est
    ouvert (+Vcc par le pull up) et s'éteint lorsque le switch est fermé
    (masse)

    J'avoue que je dois avoir fait une bourde mais à force d'avoir le nez collé dessus je ne la vois pas

    Merci pour votre aide
    Dernière modification par gienas ; 29/06/2010 à 06h12. Motif: Supprimé image et texte en mode pdf

  8. #7
    invite29971eb1

    Re : Port partage sur Atmega8

    Tes pièces ne sont pas encore validées donc je ne donnerai pas mon avis dessus, par contre.....un AVR, une led, un inter......tu me fermes ce simulateur à la c.. et tu montes ça sur une platine d'essai.

    A force d'utiliser ces usines à erreur, on ne voit plus les vrais problèmes, mais seulement ceux du logiciel, quand ce n'est pas l'inverse avec le simulateur qui oublie quelques paramètres pour te montrer un fonctionnement idéalisé.

    Autre solution, pour un test aussi simple, tu utilises le simulateur intégré dans AVR studio

  9. #8
    gienas
    Modérateur

    Re : Port partage sur Atmega8

    Bonjour bertrandbd et tout le groupe

    Pour être conforme à l'épinglé

    http://forums.futura-sciences.com/el...ointes-pj.html

    l'image pdf a été supprimée. Elle doit être présentée à nouveau, en extension jpg, gif ou png.

    Les listings peuvent être mis dans le corps des messages avec la balise code, outil #.

    .

  10. #9
    bertrandbd

    Re : Port partage sur Atmega8

    Désolé Gienas pour les pièces jointes donc pour le code:

    Code:
    #include <AVR/IO.H>
    
    /****************************************************************************/
    /*																			*/
    /*						PROGRAMME PRINCIPAL									*/				
    /*																			*/
    /****************************************************************************/
    
    int  main ()
    {
       
       DDRB = 0x00 ;				/* port B entièrement en entrée 	*/
       PORTB = 0b00000100 ;			/* pull up pour PB2					*/
    
       DDRD = 0b01111111 ;			/* initialisation sortie pour LED sauf pour D7 		*/
       PORTD |= 0x80 ;				/* pull up pour D7									*/
     /*  ACSR |= (1<<ADC) ;*/			/* suppression alimentation du comparateur (option)	*/
    
    
    
     while (1) 
    {   
       
    	if ((PINB & (1<< PINB0))== 0)  PORTD |= (1<< PD0) ; else PORTD &= (~(1<< PD0));
      
    	if ((PINB & (1<< PINB1))== 0)  PORTD |= (1<< PD1) ; else PORTD &= (~(1<< PD1));
    
    	if ((PINB & (1<< PINB2))== 0)  PORTD |= (1<< PD2) ; else PORTD &= (~(1<< PD2));
    
        if ((PIND & (1<< PIND7))== 0)  PORTD |= (1<< PD6); else PORTD &= (~(1<< PD6));
    	 
    
    /* ==============================  */
    }
    
     return (0) ;
    }
    Après, je débute en micro-contrôleur et je ne suis pas un expert en électronique donc je pense que le problème vient de ce que j'ai fait plutôt que du simulateur.

    Merci
    Images attachées Images attachées  

  11. #10
    invite29971eb1

    Re : Port partage sur Atmega8

    Seule D1 ne semble pas répondre comme prévu donc....bizarre autant qu'étrange...

    Je me demande quand même si tu ne devrais pas remplacer:
    Code:
    PORTD |= (1<< PD0)
    par :
    Code:
    PORTD=PIND|(1<<PD0)
    Une autre idée est de regarder le code compilé. Gcc a parfois une fâcheuse tendance à virer des choses qui devraient rester. L'assembleur ne devrait pas être compliqué à suivre.

    En dernier recours, il faut s'inquiéter du bon fonctionnement du simulateur.

    Dernière remarque, pense tout de suite à mettre tes résistances sur les leds. Si la simulation tolère leur absence, la réalité sera bien moins patiente.

  12. #11
    bertrandbd

    Re : Port partage sur Atmega8

    Merci pour tes réponses

    Citation Envoyé par ftorama Voir le message
    Seule D1 ne semble pas répondre comme prévu donc....bizarre autant qu'étrange...
    Pas tout à fait car D7 ne s'allume jamais


    Citation Envoyé par ftorama Voir le message
    Je me demande quand même si tu ne devrais pas remplacer:
    Code:
    PORTD |= (1<< PD0)
    par :
    Code:
    PORTD=PIND|(1<<PD0)
    Lorsque je fais cette modification rien se passe pour D1 mais D7 s'allume lorsque l'interrupteur se ferme et reste allumée lorsqu'il s'ouvre. A noter que l'entrée positive passe en haute impédance après la fermeture du switch malgré le résistance de pull up

    Citation Envoyé par ftorama Voir le message
    Une autre idée est de regarder le code compilé. Gcc a parfois une fâcheuse tendance à virer des choses qui devraient rester. L'assembleur ne devrait pas être compliqué à suivre.
    => Oui il va falloir que je regarde cela de plus près

    En dernier recours, il faut s'inquiéter du bon fonctionnement du simulateur.

    Citation Envoyé par ftorama Voir le message
    Dernière remarque, pense tout de suite à mettre tes résistances sur les leds. Si la simulation tolère leur absence, la réalité sera bien moins patiente.
    Oui entièrement d'accord; je ne l'avais pas fait car c'est plus le fonctionnement des ports que je voulais étudier pour résoudre mon problème

    Merci encore

Discussions similaires

  1. CAN Atmega8
    Par invite45724da5 dans le forum Électronique
    Réponses: 1
    Dernier message: 10/12/2009, 10h35
  2. Watchdog Atmega8
    Par invited60b6f1f dans le forum Électronique
    Réponses: 0
    Dernier message: 19/08/2008, 00h33
  3. CAN Atmega8
    Par invite73c4066c dans le forum Électronique
    Réponses: 0
    Dernier message: 13/07/2008, 21h56
  4. ATmega8
    Par invitec85fb8ec dans le forum Électronique
    Réponses: 0
    Dernier message: 05/08/2006, 14h21
  5. réseau: partage de port série
    Par invitebf62768c dans le forum Internet - Réseau - Sécurité générale
    Réponses: 0
    Dernier message: 30/07/2005, 18h12
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...