Hallo, ich ahbe folgendes Problem:
Für mein DUO-LED Fahrradlicht betreibe ich zwei Step-Down Wandler für
bis zu 1A und um das Tastverhältnis der PWMs zu regeln, möchte ich die
Ströme über zwei 0,5Ohm Shunts gegen Masse mit 10-facher Verstärkung
messen. Wenn ich einen einzelnen Kanal betreibe, funtkioniert die
Schaltung. Wenn ich einen anderen betreibe auch, aber beide zusammen mit
der Batterie Überwachung verfälscht das Ergebnis der Messung um den
gefühlten faktor 10 nach unten.
Hier meine Interrupt Routine:
SIGNAL(SIG_ADC)
{
if(ADC_COUNT)
ADC_TMP+=(ADC<<1);
ADC_COUNT++;
if(ADC_COUNT>1)
{
switch(ADC_CHANNEL)
{
case(0): // BATTERY
UBAT=ADC_TMP;
ADC_CHANNEL=1;
ADMUX|= 0b01001001; // AREF/right/2-CH amp./10*ADC1->0
break;
case(1): // NEAR LED
I1=ADC_TMP;
if((I_SET>I1) && (OCR1A>400)){
OCR1A--;}
else if((I_SET<I1) && (OCR1A<1022)){
OCR1A++;}
ADC_CHANNEL=2;
ADMUX|= 0b01001101; // AREF/right/2-CH amp./10*ADC3->2
break;
case(2): // FAR LED
I2=ADC_TMP;
if((I_SET>I2) && (OCR1B>400)){
REDOFF
GREENON
OCR1B--;}
else if((I_SET<I2) && (OCR1B<1022)){
REDON
GREENOFF
OCR1B++;}
ADC_CHANNEL=0;
ADMUX|= 0b01000111; // AREF/right/8 unipol./ADC7
break;
}
ADC_COUNT=0;
ADC_TMP=0;
}
ADCSRA|= (1<<ADSC); //start next Conversion*/
}
Ich verzweifle an diesem Fehler, vielleicht kann mir ja jemand einen
heißen Tipp geben, was man beachten muss um mehrere Kanäle quasi
parallel zu messen.
mfg Sönke
Hallo ich kenne mich mit ATMEL nicht aus. Aber bei den PIC's gilt, dass man beim Umschalten von einem Kanal auf einen anderen erst mal ein bisschen warten muss, damit sich die Multiplexer-Eingangs-Kapazität auf den neuen Spannungswert aufgeladen hat. Das ist bei ATMEL vermutlich genauso. Also studier nochmal das datenblatt, ob da nicht auch so eine Wartezeit vorgesehen ist, denn nach so einem Fehler sieht es für mich aus. Gruß Gerhard
Hier ist Dein Fehler:
1 | ADMUX|= 0b01001001; // AREF/right/2-CH amp./10*ADC1->0 |
2 | ... |
3 | ADMUX|= 0b01001101; // AREF/right/2-CH amp./10*ADC3->2 |
4 | ... |
5 | ADMUX|= 0b01000111; // AREF/right/8 unipol./ADC7 |
Du darfst nicht verodern, nach 3 Durchgängen ist ein sich nicht mehr ändernder Zustand erreicht. Außerdem ist Deine Bitschreibweise unübersichtlich.
DAAANNKEEE!! Ich hatte zunächst immer nur die Bits getoggelt,aber weil der Ausdruck zu lang war habe ich die Binärzahlen eingesetzt und das |= vergessen. Irgendwann sihet man es einfach nicht mehr, auch wenn ich wusste, dass es an diesem Befehl liegen muss. VIELEN DANK!!! Im endeffekt hat er von ADC3 nach 2 mit 200 facher auflösung gegen 5V gemessen. Daher auch der um den Faktor 20 kleinere Strom... mfg Sönke
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.