Forum: Mikrocontroller und Digitale Elektronik mega1280 SPI assembler frage


von mbuchman (Gast)


Lesenswert?

Hallo!

iene kurze Frage zum assembler:

es gibt den befehl: OUT P, Rr
damit schreib ich auf den PORT P das Register Rr
kann das Register Rr auch das SPI Databyte Register sein?

Danke!

von Matthias (Gast)


Lesenswert?

Nein. das Rr muss eins von Arbeitsreg. sein. Also R0..R31.
Du musst also so tun:

IN      r24,   SPDR
OUT     PORTP, r24
..



(Unter der Annahme, der µC hat ein Port P)

von Hagen R. (hagen)


Lesenswert?

und SPDR ist ein Register im Addressbereich < 64. Ansonsten musst du per 
Load/Store Befehle arbeiten -> LD register, Memoryadresse.

Gruß Hagen

von Spess53 (Gast)


Lesenswert?

HI

Nicht 'ld' und 'st', sondern 'lds' und 'sts'.

MfG Spess

von mbuchman (Gast)


Lesenswert?

danke für eure hinweise.

wenn nun jeder der beiden befehle 1 taktzyklus braucht, und mein 
controller mit 10MHz betrieben wird - brauche ich für die gesamte 
operation 200ns ?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

mbuchman wrote:

> ... brauche ich für die gesamte
> operation 200ns ?

Richtig.  Solange du auf IO-Ports zugreifst, die via IN und OUT
erreichbar sind, ist der AVR richtig schnell mit Bitwackeln.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.