Convertisseur CAN d'un µC ATMEGA8515

dinhoaziz Messages postés 45 Statut Membre -  
dinhoaziz Messages postés 45 Statut Membre -
Bonjour,
actuellement je suis en Stage PFA, j'ai un µC qui possède un Convertisseur CAN et 8 entrées analogique(PORTC) pour converti les données analogiques en numérique codé sur 10bits ,et j'ai trouvé qu'on peut écrire l'équation suivante :
Résultat numérique = (Tension d'entrée / tension de référence AREF) x 1024 - 1
Par exemple, pour avoir le résultat d'une tension d'entrée de 2,5 V avec une tension de référence de 5 V
(AREF) nous aurons :
Rn = (2,5/5) x 1024 = 511;
bon j'ai pas compris la signification de 511?!!
je veux réaliser un programme avec l'outil MicroC for Avr (langage C) qui va converti 3 entrées analogique (Température interne+externe+ humidité) et ensuite l'afficher ces données en temps réel sur un LCD . comme information j'ai utilise un capteur CTN qui délivre une tension entre (5v-0) mon problème si que je veux connaitre la relation exacte entre la valeur d'entrée analogique par EXP 2,5 correspond quoi en numérique (exp en HEXA ou BINAIRE) pour que je puisse faire des testes par exp si ADC=0x1FF alors PORTB=0xFF comme le montre le programme suivaant:
#include <built_in.h>
unsigned int adc_rd;
unsigned float t[];
int i;
sbit LCD_RS at PORTB.B2;
sbit LCD_EN at PORTB.B3;
sbit LCD_D4 at PORTB.B4;
sbit LCD_D5 at PORTB.B5;
sbit LCD_D6 at PORTB.B6;
sbit LCD_D7 at PORTB.B7;

sbit LCD_RS_Direction at DDRB.B2;
sbit LCD_EN_Direction at DDRB.B3;
sbit LCD_D4_Direction at DDRB.B4;
sbit LCD_D5_Direction at DDRB.B5;
sbit LCD_D6_Direction at DDRB.B6;
sbit LCD_D7_Direction at DDRB.B7;
char txt1[] = "28";
char txt2[] = "23";


void main() {

DDRB = 0xFF; // Set PORTB as output
DDRC = 0xFF;
DDRD= 0xFF;
// Set PORTC as output

while (1) {
adc_rd = ADC_Read(2); //get ADC value from 2nd channel

if(ADC_Read(2)==0x1FF){
/* Lcd_Init(); // Initialize LCD
Lcd_Cmd(LCD_CLEAR); // Clear display
Lcd_Cmd(LCD_CURSOR_OFF); // Cursor off

Lcd_Out(1,6,txt1); */


PORTD.B0=1;
PORTC.B1=1;
PORTC.B0=0;
} else{
/* Lcd_Cmd(LCD_CLEAR); // Clear display
Lcd_Cmd(LCD_CURSOR_OFF); // Cursor off

*/
PORTC.B1=0;
PORTC.B0=1;
PORTD=0;}

}





}

}
j'ai testé que les entrées analog et pas encors LCD (commentaires)normalement ce programme ça marche en simulation (isis)
mais je sais pas comment avoir la correspondance mathématique entre la valeur analgique et numerique(HEXA)???
merci d'avance
A voir également:

1 réponse

dinhoaziz Messages postés 45 Statut Membre
 
qlq qui peut m'aider svp c'est urgent ??!
0