« SE4Binome2024-7 » : différence entre les versions

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
<nowiki>#</nowiki>include <avr/io.h>
<syntaxhighlight lang="c">


<nowiki>#</nowiki>include <avr/interrupt.h>
#include <avr/io.h>


<nowiki>#</nowiki>define CTC1            WGM12           // Meilleur nom pour le bit
#include <avr/interrupt.h>


<nowiki>#</nowiki>define PERIODE         1000
#define CTC1            WGM12           // Meilleur nom pour le bit
 
 
#define PERIODE         1000


void init_minuteur(int diviseur,long periode){
void init_minuteur(int diviseur,long periode){
Ligne 50 : Ligne 53 :


}
}
</syntaxhighlight>

Version du 7 octobre 2024 à 08:36

#include <avr/io.h>

#include <avr/interrupt.h>

#define CTC1            WGM12           // Meilleur nom pour le bit


#define PERIODE         1000

void init_minuteur(int diviseur,long periode){

TCCR1A=0;               // Le mode choisi n'utilise pas ce registre

TCCR1B=(1<<CTC1);       // Réinitialisation du minuteur sur expiration

switch(diviseur){

  case    8: TCCR1B |= (1<<CS11); break;

  case   64: TCCR1B |= (1<<CS11 | 11<<CS10); break;

  case  256: TCCR1B |= (1<<CS12); break;

  case 1024: TCCR1B |= (1<<CS12 | 1<<CS10); break;

  }

OCR1A=F_CPU/1000*periode/diviseur;

TCNT1=0;

TIMSK1=(1<<OCIE1A);

}

ISR(TIMER1_COMPA_vect){

}

int main(void){

DDRC &= 0b000000001;              // Chenillard sur 4 LED

PORTB ^= ~0b00000001;            // LED éteintes

init_minuteur(256,PERIODE);

sei();

while(1);

}