AVR Assembler, Objektfeldadresse in X Register laden?

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1079
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.11 FPC 3.2)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: AVR Assembler, Objektfeldadresse in X Register laden?

Beitrag von fliegermichl »

siro hat geschrieben:
Di 9. Feb 2021, 18:36
Da ich mich auch SEHR intensiv mit den RGB Leds/Stripes beschäftigt habe, hier eine kleine Info:
Die High Impulse sollte man recht genau einhalten, aber die Low Impulse dürfen "wesentlich" länger sein.

getestet mit WS2812 und SK2812

...

Siro
Vielen Dank dir. Das werde ich umgehend ausprobieren. Obwohl es mir richtig Spaß gemacht hat mal wieder bissi Assembler zu schreiben.
Wart- und lesbarer ist aber in jedem Fall der Pascalcode.
Wenn er zuverlässig funktioniert, werde ich den wohl auch nehmen.
Der Arduino in meinem Roboter hat ansonsten nicht viel mehr zu tun. (Zwei Schrittmotoren ansteuern und die Versorgungsspannung überwachen)

Michael

Timm Thaler
Beiträge: 1220
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: AVR Assembler, Objektfeldadresse in X Register laden?

Beitrag von Timm Thaler »

PascalDragon hat geschrieben:
Mi 10. Feb 2021, 09:12
Das fBegun Feld mag zwar unterschiedliche Größe haben, aber der Offset von fnumBytes wird sich abhängig von der Optimierungsstufe nicht ändern, weil sich eben Code auf den Offset verlassen könnte.
Ich seh dennoch nicht, was hier der Vorteil gegenüber einem record sein soll, wo ich die Elemente direkt ansprechen kann - und das auch absolut sauber umgesetzt wird. Der Compiler baut da Code für den AVR, den ich in ASM direkt nicht besser könnte.

PascalDragon
Beiträge: 535
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: AVR Assembler, Objektfeldadresse in X Register laden?

Beitrag von PascalDragon »

Timm Thaler hat geschrieben:
Mi 10. Feb 2021, 20:42
PascalDragon hat geschrieben:
Mi 10. Feb 2021, 09:12
Das fBegun Feld mag zwar unterschiedliche Größe haben, aber der Offset von fnumBytes wird sich abhängig von der Optimierungsstufe nicht ändern, weil sich eben Code auf den Offset verlassen könnte.
Ich seh dennoch nicht, was hier der Vorteil gegenüber einem record sein soll, wo ich die Elemente direkt ansprechen kann - und das auch absolut sauber umgesetzt wird. Der Compiler baut da Code für den AVR, den ich in ASM direkt nicht besser könnte.
Wenn fliegermichl per Assembler seine Felder in Register bewegt, dann ist es doch total egal, ob es ein record oder ein object ist, da du in beiden Fällen den richtigen Offset ermitteln musst.
FPC Compiler Entwickler

Antworten