c/exam/exo4.c
2020-09-12 18:34:55 +02:00

78 lines
No EOL
1.1 KiB
C
Executable file

/*
* controletptestxddd.c
*
* Created: 04/04/2021 15:10:52
* Author : Alzyohan
*/
#include <avr/io.h>
#define F_CPU 3686400
#include <util/delay.h>
#define UBRR_THEO 47
void ADC_init(void);
char ADC_read_value(void);
void uart_init(void);
void emettre_can(char c);
float converter(void);
int main(void)
{
unsigned char x='<';
unsigned char y='>';
float temp;
ADC_init();
uart_init();
DDRB=0xFF;
while(1){
_delay_ms(200);
temp = converter();
if(temp>1)
{
emettre_can(x);
}
else
{
emettre_can(y);
};
};
}
void ADC_init(void)
{
DDRA &=~(1<<PA2);
ADMUX |= (2<<MUX0);
ADCSRA|=(1<<ADEN)|(3<<ADPS1);
}
char ADC_read_value(void)
{
ADCSRA|=(1<<ADSC);
do{
//nothing
}while((ADCSRA&(1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADC;
}
void uart_init(void)
{
DDRD |= (1<<PD1);
UBRRL = UBRR_THEO;
UCSRB |= (1<<TXEN);
UCSRC |= (1<<USBS)|(3<<UPM0)|(3<<UCSZ0);
}
void emettre_can(char c)
{
do{
//rien
}while ( !(UCSRA & (1<<UDRE)) );
UDR = c;
}
float converter(void)
{
float x = (5/1024)*ADC_read_value();
return x;
}