programmation d'un can de atmega8535

Forum sur la programmation d'applications fonctionnant sur PC ou MAC. Pour vos autres questions de programmation : C pour microcontrôleur, VHDL, LCD etc, utilisez la rubrique Electronique numérique et logique programmable.

Modérateur : Modérateur

Invité

programmation d'un can de atmega8535

Message par Invité »

bonjour à tous j'ai debuté la programation de atmega 8535 mais ça ne donne pas de résultat..
Quelqu'un peut il m'aider?

VOICI MON CODE :



#include <avr/io.h> //Cette ligne est obligatoire. Elle permet d n'écrire qu'un programme pour tous les AVR.
#include <stdio.h>
#include <util/delay.h>

#include <stdlib.h>
#include <math.h>



int i,j;
float a,val_convertie;
void can_init (void);
unsigned int ADC_PRESCALER;
#define FOSC < 16000 //Fréquence d'horloge du CPU en Hz (Attention 16M par défaut)
#define ADC_FULL_RANGE ((Nmax)(0x03FF)) // 10-bit ADC
#define INTERNAL_VREF_VALUE ((Vmax)( 256)) // 2.56 Volts
#define Get_vref() ( ADMUX & ((1<<REFS1)|(1<<REFS0)) )
#define Start_conv() (ADCSRA &= ~(1<<ADATE), ADCSRA |= (1<<ADSC))
#define Disable_adc() (ADCSRA &= ~(1<<ADIE))
#define Clear_adc_it_flag() (ADCSRA |= (1<<ADIF))






void TMega_port_init (void)

{
DDRA=0xFB; //Cela permet de configurer les PORTx en sortie
DDRB=0xFF;
DDRD=0xFD;
}



void main (void)
{
TMega_port_init();
ADMUX=0x00;
ADCSRA=0x08;
SFIOR=0x00;

do
{
ADCSRA=0x04; //ADSC=1
while(ADIF!=1)
ADCSRA=ADCSRA|0x40;
PORTB=ADCH;
PORTD=ADCH;

ADCSRA=ADCSRA&!0x80;
}
while(1);
}

Invité

Message par Invité »

Dans ton code, je ne vois rien choquant à par cette ligne: #define FOSC < 16000
Cela veut dire que chaque fois que le compilateur (pour faire simple) rencontrera "FOSC" dans ton programme il el remplacera par "< 16000", le signe pour moi le signe "<" ne devrait pas être là.

Si quelqun'un passe par là pourrait-il le confirmer?

Répondre