PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AD-Wandler



espoir
03.05.2006, 14:14
Hallo Leute,

ich benutze ein Drucksensor(Huba Control 663), und eine µcTiny45,
alles ist schon eingeschlossen(die Pins).

Zum testen habe ich ein kleines code in C geschriben, es entält ein fkt init, um AD-Wandler zu initialisiren und eine zweite fkt, die die Ausgabe zurückliefert.

als Ergebnis bekomme ich ein Wert(-253), was bedeutet das, ob das richtig ist?
wenn nicht was soll ich normalerweise kriegen, und kann jemand mir erklären wie die sachen mit sensor fonktionniert.

Danke euch

PasstScho
03.05.2006, 14:26
Hallo,
Mit dem was du sagst kann ich absolut garnix anfangen.
Du musst schon einen Schaltplan und deine Funktionen zeigen und genau sagen was du gemacht hast

MfG Alex

espoir
03.05.2006, 14:36
ok, der sensor hat 3 pins.GND, vcc(5v),und eine zur µc(AD pin).
ich schicke hier den fkt-code.

#include "adc.h"
#include <iom32v.h>

void Adc_Init(void)
{
ADCSR = 0x80; //Durch das setzen von Bit ADEN schaltet Der AD-Umsetzer ein
ADMUX = 0x03; //wählt der Kanal(ADC3) und setzt die Rferenzspannung auf 5v
}

int umsetzen_Spannung(void)
{

int Ergebnis;
ADCSRA = 0xC3 //AD-Umsetzer Starten und Prescaler auswählen
while ( ADCSRA & (1<<ADSC)); //Warte-Schleife bis Ende der Umsetzung
Ergebnis = ADCH+ADCL*256; // Im ADCL sind die ersten 8 bits des Ergebnisses
// Im ADCH sind die restlichen 2 Bits gespeichert
return Ergebnis;
}



#include <iom32v.h>
#include "adc.h"



void main()
{int a=0;

DDRB=0x17;
PORTB=0x00;
while(1)
{

Adc_Init();
umsetzen_Spannung();
}
/* for(;;)
{
PORTB=0x17;
}*/
}

askazo
03.05.2006, 15:29
Ergebnis = ADCH+ADCL*256;

Das ist auf jeden Fall falsch. Da im ADCH die höherwertigen Bits liegen, muss es genau andersherum sein:
Ergebnis = ADCH*256+ADCL;

Gruß,
askazo

espoir
03.05.2006, 19:40
ich werde das morgen ausprobieren, aber kann bitte jemand erklären was ist diese ausgegebene Wert(Ergebniss=-253), ob das ist eine Spannung oder was?
ich habe so verstande: mein Sensor messt ein Differezdruck und wird um eine Spanung.