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.