Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 40 sur 40

Connexion microcontrôleur et quartz



  1. #31
    Gérard

    Re : Connexion microcontrôleur et quartz


    ------

    Il manque les résistances en série avec les LED !

    -----

  2. Publicité
  3. #32
    Yoruk

    Re : Connexion microcontrôleur et quartz

    Et propose-nous un code... On en discute après.
    La robotique, c'est fantastique !

  4. #33
    Picooz

    Re : Connexion microcontrôleur et quartz

    Je ne connais pas les AVR donc je peux me tromper mais :

    Page 82 de la doc :

    RESET, Reset pin: When the RSTDISBL Fuse is programmed, this pin functions as a normal I/Opin [...] When the RSTDISBL Fuse is unprogrammed, the reset circuitry is connected to the pin,

    Dans ta capture d'écran le Fuse est "unprogrammed" et pas de pull-up sur le pin reset

    Ensuite va a la page 261 :
    - Pull-up resistors on the dW/(RESET) line must not be smaller than 10kΩ.
    - Connecting the RESET pin directly to VCC will not work

    Voilà ! Il y a tout dans la doc ! Il faut la lire !
    Dernière modification par Picooz ; 14/04/2015 à 20h00.

  5. #34
    Djenh

    Re : Connexion microcontrôleur et quartz

    Bonjour, voici le code source que j'ai écrit.


    Code:
    /*
     * Timer_avec_quartz_2.c
     *
     * Created: 14/04/2015 13:24:02
     *  Author: utilisateur
     */ 
    
    
    
    
    
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <avr/wdt.h>
    #include <avr/signal.h>
    #include <util/delay.h>
    
    #define PER_1s 78125/10
    
    int compteur=0, commande=0 ;
    
    ISR(TIMER0_OVF_vect)
    {
    	compteur++ ;
    	if (compteur < PER_1s)
    	return ;
    	
    	compteur=0 ;
    	if (commande){
    	PORTD = 0x0F ;
    	PORTC = 0x00 ;
    	}	
    	else{
    	PORTC = 0x0F ;
    	PORTD = 0x00 ;}
    	commande =  ~ commande ;
    }
    
    /*ISR(WDT_vect)
    {
    	
    	if (commande==0)
    		PORTD = 0x0F ;
    	else
    		PORTC = 0x0F ;
    		
    	commande =  1 ;
    	
    	wdt_disable();
    	wdt_reset();
    	
    	_delay_ms(1000);
    		
    	PORTD = 0 ;
    	PORTC = 0 ;
    }
    */
    
    int main(void)
    {
    	//ASSR &=~(1<<EXCLK);
    	ASSR &=~(1<<0x07);
    	ASSR |=(1<<EXCLK);
    	ASSR|=(1<<AS2);
    	
    	DDRD = 0xFF ;
    	PORTD = 0xFF ;
    	//PORTD = 0 ;
    	
    	DDRC = 0xFF ;
    	PORTC = 0xFF ;
    	//PORTC = 0 ;
    	
    	DDRB = 0x0 ;
    	
    	/*wdt_disable();
    	wdt_reset();*/
    	
    	//WDTCSR |=(1<<WDIE);
    	
    	
    	/*wdt_enable(WDTO_1S);
    	WDTCSR = 0b01001000 ;*/
    	
    	TCCR0A = 0 ; // active le mode normal
    	//TCCR0A = 1;  // active le mode CTC
    	TCCR0B = 0b00000001 ;
    	TIMSK0 |= (1<<TOIE0);
    	
    	
    	sei();
    	
    	while(1)
    	{
    		
    	}
    }
    Merci
    Dernière modification par Antoane ; 15/04/2015 à 11h58. Motif: Réparation balises code

  6. #35
    Yoruk

    Re : Connexion microcontrôleur et quartz

    Le prochain coup, utilises des balises CODE pour rendre ton code plus lisible... Là c'est une misère à lire ! (EDIT : la balise c'est des [] pas des <> ! )

    Pourquoi utiliser les timers et les interruptions ? Ya moyen de faire plus simple...

    Tu compiles avec quoi ? Tu dois pouvoir trouver une fonction delay__ms qui pourrait te rendre bien des services ! Cherche dans tes bibliothèques de code...!
    La robotique, c'est fantastique !

  7. #36
    Gérard

    Re : Connexion microcontrôleur et quartz

    DEBUT:

    portB = 255
    portC = 0
    tempo1s
    portB = 0
    portC = 255
    tempo1s
    goto DEBUT

    Ne pas oublier l'initialisation et le mot de config.
    Tu traduis dans ton langage.

  8. Publicité
  9. #37
    Yoruk

    Re : Connexion microcontrôleur et quartz

    Petit indice également si tu utilises une fonction de délai : il est impératif de déclarer la vitesse de ton quartz dans l'en tête du programme, puis de suivre une trame de programme comme celle proposée par Gérard. Il n'y a pas plus simple !!
    La robotique, c'est fantastique !

  10. #38
    Djenh

    Re : Connexion microcontrôleur et quartz

    Merci à vous pour ces explications.
    Au fait, Yoruck excuses moi mais quand tu dis de définir la vitesse de mon quartz,
    je crois que c'est ça que j'ai voulu faire en faisant
    #define PER_1s 78125/10
    Mais apparemment cela ne marche. Sinon pourrais tu stp m'expliquer comment bien procéder?
    Merci

  11. #39
    Yoruk

    Re : Connexion microcontrôleur et quartz

    Cherche des exemples de code utilisant des délais... La vitesse du quartz est à indiquer dans l'en-tête de programme. En tout cas #define PER_1s 78125/10 ne ressemble pas à ce type de déclaration. Et normalement tu donnes la valeur directe du quartz, pas une division étrange.
    La robotique, c'est fantastique !

  12. #40
    Djenh

    Re : Connexion microcontrôleur et quartz

    OK merci. Je comprend maintenant ce que tu dis.
    Cordialement

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. Quartz 2 pins connexion à une seul entrée clock ?
    Par genocyber dans le forum Électronique
    Réponses: 7
    Dernier message: 20/04/2014, 18h06
  2. Condensateurs d'un quartz pour Microcontrôleur
    Par jojo-68 dans le forum Électronique
    Réponses: 2
    Dernier message: 10/05/2013, 12h55
  3. Oscillateur à quartz pour microcontroleur
    Par Thoms_ dans le forum Électronique
    Réponses: 10
    Dernier message: 31/03/2013, 13h44
  4. connexion PC/microcontroleur
    Par Celestis dans le forum Électronique
    Réponses: 0
    Dernier message: 19/10/2008, 18h31
  5. Problème: Microcontroleur et quartz
    Par SEVERIN dans le forum Électronique
    Réponses: 4
    Dernier message: 31/03/2007, 20h55
Découvrez nos comparatifs produits sur l'informatique et les technologies.