Ok, Festkommaarithmetik werde ich mal versuchen.
Controller ist Mega32 und läuft mit 16MHz. Der ADC wird einmal in der PID Berechnungs-Funktion geholt, also alle 100µs. Die reine Wandlung des externen ADCs beträgt ca. 1,5µs + die paar Befehle zum Daten abrufen (die Daten kommen parallel).
Nein, der ADC - Wert wird nicht gefiltert. In adc_read() passiert also nichts zeitaufwendiges. Es wird rein der ADC ausgelesen, mehr nicht.
Als DAC benutzte ich einen AD767.
In der Endlosschleife Main läuft rein gar nichts.
Kann ich mittels AVR Studio irgendwie rausbekommen, wie lange die PID Berechnung dauert?
Was passiert eigentlich, wenn eine ISR momentan ausgeführt wird und während dessen trifft ein neuer Interrupt ein? Verpufft dieser, oder wird der gemerkt, bis die akutelle ISR vorbei ist?
/*schluck*
Laut Simulator soll die Berechnung 350µs dauern...kommt mir arg lang vor.
/*holla*
Mit Shorts brauchts nur ganze 7,6µs!
Lesezeichen