-
-
Erfahrener Benutzer
Roboter Experte
Hallo,
die hohe Geschwindigkeit ist doch nur interessant bei hohen Frequenzen. Diese kann aber doch nur auf kosten von Ausgabewerten erreicht werden. Also bringt es doch gar nichts, wenn man die Tabelle auf 512 oder gar 1024 Werte erweitert. Dies kommt eh nur den niedrigen Frequenzen zu gute, und da kommt es nicht drauf an ob da jetzt 1 Takt hin oder her ist.
Die Idee, gleich 2 oder mehr Werte pro Schleife/ISR auszugeben, ist doch eigentlich auch eine Milchmännchen rechnung, du hast egal wie einen Rücksprung, der dich Zeit kostet. Also hast du ihn diesem Rücksprung eine Verzögerung, die du wiederum mit einberechnen musst.
Okay, es kann sein, dass ich dann im Endefekt 2-3 Takte schneller sein mag, was sich dann auf die Frequenz sogar stark auswirkt. Hätte ich nicht gedacht, dass es sich so stark auswirkt:
Fcpu=20MHz
Takte/Wert: 6 (im Schnitt)
Werte/Welle: 3
=>fmaxsinus=1,1111MHz vorher: 740kHz. 50% Mehr als vorher. Nicht schlecht!
Aber ist es möglich das ganze auf 6Takte pro Wert zu bekommen?
Man muss den Phasenakkumolator um 1 erhöhen => 1Takt, die Daten aus dem Ram holen =>3Takte, Daten ausgeben=>2Takte
=>6Takte. Aber der Rücksprung fehlt ja auch noch. 2Takte.
Dabei wurde jetzt aber nicht darauf eingegangen, dass für niedrige Frquenzen noch eine Art 2ter Verzögerer Benötigt wird. Wäre über einen Interupt dann besser. Produziert aber einen Haufen an nutzlosen Takten.
Bei einer Tabelle mit über 256 Werten hast du dann wieder das Problem, dass du mit LSB und MSB Bits Arbeiten musst, und dir damit dann wieder einen Takt an Rechenarbeit mehr hast. Also auch doof.
Aktuell bin ich der Meinung, dass es nicht möglich ist über 200kHz zu kommen, mit variabler Frequenz von 1Hz bis 200kHz. OHNE den µC zu übertakten. Wäre ja auch noch ne Möglichkeit.
Ich lasse mich gern von einer Besseren Lösung überzeugen.
mfg
Michael
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen