53 lines
No EOL
970 B
C
53 lines
No EOL
970 B
C
/*
|
|
* timerinterrupt.c
|
|
*
|
|
* Created: 17/05/2021 12:58:50
|
|
* Author: yboujon1
|
|
*/
|
|
|
|
#include "main.h"
|
|
#include "timerinterrupt.h"
|
|
volatile unsigned char etat = 0;
|
|
|
|
void start_timer0(void){
|
|
DDRB |= (1<<PB3);
|
|
TCCR0 |= (3<<CS00)|(1<<WGM01)|(1<<COM00);
|
|
OCR0 = 65;
|
|
}
|
|
|
|
void stop_timer0(void){
|
|
TCCR0 &= ~(3<<CS00);
|
|
}
|
|
|
|
void init_interruption(void){
|
|
DDRD &= ~(1<<PD2); //on met int sur pd2
|
|
MCUCR |= (3<<ISC00);
|
|
GICR |= (1<<INT0);
|
|
sei();
|
|
}
|
|
|
|
ISR (INT0_vect){
|
|
etat = 1 - etat;
|
|
}
|
|
|
|
void start_timer1(unsigned short int ocr1a){
|
|
OCR1A=ocr1a;
|
|
TCCR1A |= (1<<COM1A0); //toggle
|
|
TCCR1B |= (1<<WGM12)|(1<<CS12); //compare + div 64
|
|
}
|
|
|
|
void stop_timer1(void){
|
|
TCCR1B &= ~(1<<CS12);
|
|
OCR1A=0; //règle le soucis du premier mot oublié
|
|
}
|
|
|
|
void resume_timer1(void){
|
|
TCCR1B |= (1<<CS12);
|
|
}
|
|
|
|
void wait_ocf1a_timer1(void){
|
|
do{
|
|
status=TIFR;
|
|
}while((status & (1<<OCF1A))==0);
|
|
TIFR = TIFR | (1<<OCF1A); //on remet OCF1A a 0
|
|
} |