first commit

This commit is contained in:
Jérôme Delacotte
2025-03-06 11:15:32 +01:00
commit 7b30d6e298
5276 changed files with 2108927 additions and 0 deletions

View File

@@ -0,0 +1,86 @@
#include <avr/io.h>
#include <avr/interrupt.h>
//*********************************************//
//********* Prototypes de fonctions ***********//
//*********************************************//
//Initialise l'ADC et démarre une première conversion
void initAdc();
//*********************************************//
//********* Variables globales ***********//
//*********************************************//
//ADC variables
volatile uint16_t adc = 0;
//*********************************************//
//********* Programme principal ***********//
//*********************************************//
int main(void){
initAdc();
DDRB |= 1<<DDB0;
sei(); //Activer les interruptions
while(1){
if(adc > 0){
PORTB |= 1<<PORTB0;
}
else{
PORTB &= ~(1<<PORTB0);
}
}
return 0;
}
//*********************************************//
//********* Interruptions ***********//
//*********************************************//
//Interruption lorsqu'une conversion de l'ADC se termine
//Conversion en boucle
ISR(ADC_vect){
//Lire le resultat
adc = ADC;
//Démarrer une nouvelle conversion
ADCSRA |= 1<<ADSC;
}
//*********************************************//
//********* Fonctions ***********//
//*********************************************//
//Initialise l'ADC et démarre une première conversion
void initAdc(){
//Activer l'ADC via ADEN dans ADCSRA
ADCSRA |= 1<ADEN;
//Selectionner la référence de voltage via REFSn dans ADMUX
//Rien à faire car utilisation de AREF, donc REFS0 et RES1 = 0
//Sélectionner le premier convertisseur via MUX dans ADMUX
//Rien à faire car l'on souhaite commencer par ADC0, donc MUX3...0 = 0
//Activer l'interruption sur conversion terminée via ADIE dans ADCSRA
ADCSRA |= 1<<ADIE;
//Paramétrer le prescaler de l'ADC à 64 :horloge 8Mhz -> horloge ADC de 125kHz
ADCSRA |= 1<<ADPS1 | 1<<ADPS2;
//Démarrer une première conversion
ADCSRA |= 1<<ADSC;
}