Gast
#4742980
Wer kann mir bitte nochmal weiterhelfen? Ich habe mir einen BLDC Motorcontroller nach "Ulrich Rading" gebaut, welcher auch soweit gut funktioniert. Allerdings würde ich gerne die Drehzahl per Poti einstellen können. Nur, was vor ein paar Tagen wunderbar funktioniert hatte, klappt heute nicht mehr. Im Grunde habe ich mich an das gehalten, was ich hier gefunden habe: http://www.fingers-welt.de/phpBB/viewtopic.php?f=14&t=1406 und auch so eingefügt: //################################################################## void next_commutate_state (unsigned char startup) //################################################################## { /* //Potiwert einlesen ACSR &= ~(1<<ACIE); //ANALOG_COMP_vect interrupt deaktivieren ADMUX = (0<<REFS1) | (0<<REFS0); //Externe Referenzspannung verwenden ADCSRA = (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); //Vorteiler = 128 => 125kHz ADCSRA |= (1 << ADEN); // ADC aktivieren old_ADMUX =ADMUX; //ADMUX zwischenspeichern ADMUX = POTI; // Kanal für Poti wählen (ADMUX = 5) ADCSRA |= (1 << ADSC); // eine ADC-Wandlung while (ADCSRA & (1 << ADSC)) { // auf Abschluss der Konvertierung warten } rx_pwm = ADCW >> 2; // MSB in rx_pwm lesen ADCSRA &= ~(1 << ADEN); // ADC deaktivieren ADMUX = old_ADMUX; // AMDUX zurücksetzen ACSR &= ~(1<<ACIE); // ANALOG_COMP_vect interrupt aktivieren */ switch (rotor_state) { case (0): if(!SENSE_H || startup) { WH_OFF; UH_ON; SENSE_W; rotor_state = 1; TCNT1 = 1; } break; . . . Das Problem ist aber, das der Controller völlig aus dem Takt kommt, sobald ich die Potimessung einkommentiere. Heißt, er findet überhauptnicht mehr in den Interruptbetrieb bzw. der Motor läuft sehr Ruckartig. Dies war vorgestern noch anders, alles was ich verändert habe, ist ein neuer Prozessor und ein 16MHz Quarz anstatt von 8Mhz. Allerdings habe ich den Vorteiler des ADCs daher angepasst, sodass er auf 125kHz liegt. Hat schonmal jemand gleiches erfolgreich Versucht und kann mir ein paar Tips geben?