Verwirrt bei ASM

Antworten
Benutzeravatar
Maik81SE
Beiträge: 260
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Ubuntu18.04; Pi4 (Lazarusfpcupdeluxe/FPC trunk Lazarus 2.0.12)
CPU-Target: x64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Verwirrt bei ASM

Beitrag von Maik81SE »

Moin...

Lese mir gerade nochmal das Datasheet zum ATTiny25/45/85 durch und parallel im Wiki folgenden Artikel...

dabei stoße ich zugegeben auf etwas, wo ich vermutlich gerade einen Rießen Denkfehler hab.

Zum einen habe ich oft gehört, das man Register in ASM mit ld, xy, wert laden soll/muß, was auch immer.
So steht es auch im Datasheet.
Wenn ich mir jetzt aber das Bsp. Im Wiki anschaue, wird im Gegensatz das laden ganz anders aufgezogen.

Habe ich dahingehend nur einen Verständnisfehler oder gehe ich recht in der Annahme, das der Befehl

Code: Alles auswählen

SBI 1, 3
den Befehl

Code: Alles auswählen

ldi r16, (1 << DDR3)
out DDRB, r16
in einem ausführt?
Wenn ich mir im vergleich die jeweiligen Taktzyklen anschaue, könnte ich es mir nur so erklären.

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 10.6 with Lazarus 2.1.0 r64080 & FPC 3.0.4 x86_64-linux-gkt2&Code:Blocks
Ubuntu 18.10 Studio
Pi4 -> Lazarus-IDE v2.0.0+dfsg-2 rDebian Package .0.0+dfsg-2[ & FPC 3.0.4

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: Verwirrt bei ASM

Beitrag von fliegermichl »

ldi lädt ein ganzes Byte in das Register.
sbi setzt nur ein einzelnes Bit

Benutzeravatar
Maik81SE
Beiträge: 260
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Ubuntu18.04; Pi4 (Lazarusfpcupdeluxe/FPC trunk Lazarus 2.0.12)
CPU-Target: x64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: Verwirrt bei ASM

Beitrag von Maik81SE »

fliegermichl hat geschrieben:
Mi 29. Dez 2021, 09:43
ldi lädt ein ganzes Byte in das Register.
sbi setzt nur ein einzelnes Bit
Aber unterm Strich wirken beide gleich in og schreibform auf das Port PB beim attiny25/45/85?

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 10.6 with Lazarus 2.1.0 r64080 & FPC 3.0.4 x86_64-linux-gkt2&Code:Blocks
Ubuntu 18.10 Studio
Pi4 -> Lazarus-IDE v2.0.0+dfsg-2 rDebian Package .0.0+dfsg-2[ & FPC 3.0.4

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: Verwirrt bei ASM

Beitrag von fliegermichl »

In diesem Fall ja

Benutzeravatar
Maik81SE
Beiträge: 260
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Ubuntu18.04; Pi4 (Lazarusfpcupdeluxe/FPC trunk Lazarus 2.0.12)
CPU-Target: x64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: Verwirrt bei ASM

Beitrag von Maik81SE »

fliegermichl hat geschrieben:
Mi 29. Dez 2021, 11:14
In diesem Fall ja
ungeachtet werd ich wohl dann lieber bei der im DB beschriebenen Variante bleiben, sollte ich mich bei einigen Punkten mit ASM beschäftigen.
Gerade im bereich Zeitschleifen scheint es wohl sinnvoller zu sein und ich kann zu fuß meine RS485 aufbauen und später in ASM lassen oder innerhalb Lazarus auf PF umschreiben, wobei ich in diesem Fall lieber bei ASM bleiben würde, sofern ich damit zurecht komme.

Bin zugegeben kein Freund von C/C++, ASM bin ich bei dem 8085 ausgestiegen.
und Ardurino?
Öhmmm, da ich noch keinen gefunden habe, der meinen Bedürfnissen
  • ca 40 Drehgeber
  • 8 bis 16 Lines WS2812 B
  • ca 60 Buttons
  • 1 Line-In
  • µSD/USB-Port für Daten
  • USB-Kommunikation via RS323-USB
entspricht, hab ich nur die mgl vieles auf ATtiny25/45/85 und ATMega auszulagern.

Lieber 70µC á 8 Mhz und 2 bis 4 á 16MHz als 30 Arduinos zu verbauen.

Untereinander lass ich die via SPI, I²C oder RS485 schnacken.

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 10.6 with Lazarus 2.1.0 r64080 & FPC 3.0.4 x86_64-linux-gkt2&Code:Blocks
Ubuntu 18.10 Studio
Pi4 -> Lazarus-IDE v2.0.0+dfsg-2 rDebian Package .0.0+dfsg-2[ & FPC 3.0.4

Antworten