78 lines
No EOL
1.1 KiB
C
Executable file
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;
|
|
} |