/* * tp8.c * * Created: 30/03/2021 14:10:10 * Author : yboujon1 */ #include #define F_CPU 3686400 #include void timer1_init(int top); void timer1_setalpha(float percent); int main(void) { timer1_init(369); timer1_setalpha(33); //soit 33% pour qu'ils soient complémentaires while (1) { //rien }; } void timer1_init(int top){ ICR1=top; TCCR1A|=(1< #include #define F_CPU 3686400 #include #include void ADC_init(void); void ADC_start_conversion(void); void uart_init(unsigned int ubrr); void read_temp(int* e, int* d); void uart_putchar(char c, FILE *stream); static FILE out_rs232 = FDEV_SETUP_STREAM(uart_putchar, NULL,_FDEV_SETUP_WRITE); //on defini le flux de sortie avec uart putchar volatile unsigned char etat=0; volatile unsigned int valeur; int main(void) { ADC_init(); sei(); uart_init(23); stdout =&out_rs232; int entier, decimal; while (1) { ADC_start_conversion(); if (etat == 1){ read_temp(&entier,&decimal); printf("La temperature est : %d.%d.C\n\t",entier,decimal); //on affiche la température etat = 0; }; _delay_ms(500); }; } void ADC_init(void) { DDRA &=~(1<200KHz //on autorise la conversion //on autorise l'interruption }; void ADC_start_conversion(void) { ADCSRA|=(1<