SE4Binome2024-7

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
#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);

}