S-RAM zu langsam?

Gast #143406
Lesenswert?

Hi.

Hab jetzt mal was getestet. Wollte ein Programm mit 8 PWM Ausgängen
machen, wo jede seperat ein und ausdimmt. Da gehen ja schon viel
Register drauf...

Habe es jetzt mal mit 2 temp register probiert, wo ich einfach jeden
pwm wert und sonstige Sachen abspeichere. Bei jeder Änderung, lade ich
mir das gewünschte Bit aus dem S-RAM und verändere ihn, und zuletzt
speichere ich ihn wieder. Und das mit 2 Registern.

Ist zwar sehr Registersparend, aber das Programm geht voll in die
Knie.

Ist der S-RAM so langsam beim laden und schreiben?
Gast #143408
Lesenswert?

Naja, in jeder Timer-ISR 8 Bytes aus SRAM holen und wieder
zurückspeichern, das läppert sich zusammen. - Falls das Programm
überhaupt in der Timer-ISR läuft. Vielleicht solltest du woanders
optimieren, damit du die 8 Sollwerte in den unteren Registern lassen
kannst.

...
Gast #143410
Lesenswert?

Das ist korrekt. Er schreibt aber, dass er die Bits (ich denke er meint
die Bytes) ins SRAM zurückspeichert.

Aber ohne Code ist das alles Spekulation, auch wenn ich Teile des
Ausgangscodes kenne.

Beste Grüße,
...HamnneS...
Gast #143412
Lesenswert?

Leider ohne Timer... Das mit dem Timer, das raff ich noch nicht ganz...
Muss erst ein gutes Beispiel finden... Hier das ewig lange
Programm....

Natürlich hätte man es 1000mal einfacher machen können, aber jeder
fängt mal an. Beim nächstenmal gehts bestimmt besser beim schreiben.
Angehängte Dateien:
#143413
Lesenswert?

Für eine 8Kanal 8Bit PWM brauchst Du 9 Register, da bleiben also noch 23
Register übrig.

Ein Register zählt runter und schaltet alle Eingänge beim Nulldurchgang
aus, die anderen 8 zählen auch runter und schalten beim Nulldurchgang
den jeweiligen Pin ein. D.h. die Zähldifferenz entspricht dann dem
PWM-Wert.


Peter
Gast #143414
Lesenswert?

Hallo Peter.

Stimmt, aber ich machs ja nicht über den Timer, sondern über eine
normale Pause. Da braucht man noch 2 Register.

Dann brauch ich noch ein Register zum Bit setzen(Wenn FF oder 00
erreich ist, um wieder ein oder auszudimmen)

Dann brauch ich noch 2 Register, um entweder FF(-1) oder 01(+1)
dazuzuzählen.

Vielleicht denk ich ein bisschen kompliziert. Aber 2 oder 9 Register
sind ein großer Unterschied.


Gruß Avus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren